<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: audittrail</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/audittrail.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2007-08-15T13:00:07+00:00</updated><author><name>Simon Willison</name></author><entry><title>AuditTrail</title><link href="https://simonwillison.net/2007/Aug/15/audittrail/#atom-tag" rel="alternate"/><published>2007-08-15T13:00:07+00:00</published><updated>2007-08-15T13:00:07+00:00</updated><id>https://simonwillison.net/2007/Aug/15/audittrail/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.djangoproject.com/wiki/AuditTrail"&gt;AuditTrail&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Add change tracking and history to a Django model with a single line of code. Doesn’t handle relationships though, which is definitely the toughest part of this problem.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/audittrail"&gt;audittrail&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/history"&gt;history&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/orm"&gt;orm&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="audittrail"/><category term="django"/><category term="history"/><category term="orm"/><category term="python"/></entry></feed>