from django.db import models
from django.utils.translation import ugettext as _
from development.models import Project

class ModeratedProject(Project):
    """
    Project awaiting moderation. Registered Users not belonging to
    any group have their edits created using a ModeratedProject as
    opposed to a Project. Once approved by a Municipal User / Admin,
    the ModeratedProject updates the corresponding Project.
    """
    project    = models.ForeignKey(Project, null=True, related_name='real_project')
    approved   = models.BooleanField(default=False)
    completed  = models.BooleanField(default=False)
    
    class Meta:
        verbose_name = _('ModeratedProject')
        verbose_name_plural = _('ModeratedProjects')
        ordering = ['project',]

    def __unicode__(self):
        return str(self.project)
@@ -73,16 +73,123 @@
 xt as _%0A
+from django.contrib.contenttypes.models import ContentType%0Afrom django.contrib.contenttypes import generic%0A
 from dev
@@ -536,92 +536,8 @@
 %22%22%22%0A
-    project    = models.ForeignKey(Project, null=True, related_name='real_project')%0A
     
@@ -632,24 +632,261 @@
 ault=False)%0A
+%0A    content_type   = models.ForeignKey(ContentType) %0A    object_id      = models.PositiveIntegerField()%0A    project_object = generic.GenericForeignKey('content_type', 'object_id')%0A%0A    # Project, null=True, related_name='real_project'%0A%0A
     %0A    cla
@@ -915,16 +915,23 @@
 se_name 
+       
 = _('Mod
@@ -1020,19 +1020,32 @@
 ing 
+           
 = %5B'
-pr
 o
+b
 ject
+_id
 ',%5D%0A
@@ -1099,13 +1099,20 @@
 self.project
+_object
 )

Use ContentType for more abstract moderation