1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from django.contrib.contenttypes.models import ContentType
class Contact(models.Model):
content_type = models.ForeignKey(ContentType,editable=False,null=True)
def save(self):
if(not self.content_type):
self.content_type = ContentType.objects.get_for_model(self.__class__)
self.save_base()
def as_leaf_class(self):
content_type = self.content_type
model = content_type.model_class()
if(model == Contact):
return self
return model.objects.get(id=self.id)
|
Comments
awesome snippet, crucialfelix.
I've taken your snippet and tacked on a complementary QuerySet hack of my own to avoid having to manually call the
as_leaf_classmethod.#