title: Can a generic.GenericForeignKey() field be Null?
body: <p>I am creating an object which tracks changes (Updates) regarding the creation, updating and deletion of other so called <code>UUIDSyncable</code> objects in the database.</p>
  
  <p>This involves any object which extends the <code>UUIDSyncable</code> classes's <code>save()</code> and <code>delete()</code> methods being overriden, in such a way that it creates a new <code>Update</code> object recording the action (either insert, update or delete) and originally a <code>models.CharField(max_length=64)</code> field specifying the UUID pk of of the of <code>UUIDSyncable</code> objects.</p>
  
  <p>At this point I wanted to update the implementation to use Django's <code>generic.GenericForeignKey()</code> field in stead of my single character field. This would enable be to access the object about which the update is being recorded in a much simpler way.</p>
  
  <p>My problem arrises when you wish to delete an object and store that as an <code>Update</code> object, as you know Django preforms a cascade delete on the <code>UUIDSyncable</code> object being deleted, deleting all the previous <code>Update</code> records (which is not wanted).</p>
  
  <p>When the <code>UUIDSyncable</code> object has been deleted in my original implementation, each <code>Update</code> object would still retain the UUID to inform external parties about its deletion. My first solution to emulate this was to set <code>content_object = None</code> just before deleting the object on all the <code>Update</code> objects, thus preventing the deletion cascade.</p>
  
  <p>It seams that <code>generic.GenericForeignKey()</code> cannot be set to allow <code>NULL</code> values. Is there a way to do this, or if not how can a standard <code>CharField</code> holding a UUID primary key and a sperate <code>CharField</code> holding the model name be used in a similar fashion?</p>