我正在建立合规管理系统,我对项目中的大多数模型有以下要求:
因为可用的django-apps不符合我创建的以下构造的所有这些要求:
因为我有很多这样的用例,我想制作一个MasterAbstractClass和一个DetailAbstractClass,但我找不到以下挑战的解决方案:
编辑1:刚认识到第3次挑战完全没问题,以下工作:
class ContentLifecycleDetailClassModel (models.Model):
author = models.ForeignKey('auth.User', null=True)
class Test(ContentLifecycleDetailClassModel):
pass
CLI
from polls.models import Test
from django.contrib.auth.models import User
test = Test()
user = User.objects.first()
test.author=user
test.save()
x = Test.objects.first()
print x.author.username # <-- Working
编辑2: 这个问题已在2009年讨论过,但只有一个抽象类的解决方案用于一个不符合这些需求的实现中:http://djangotricks.blogspot.co.at/2009/02/abstract-models-and-dynamicly-assigned.html
编辑3: 我最终使用ContentType Framework来解决(1)和(2)
masterModel_type = models.ForeignKey(ContentType, blank=True, null=True)
masterModel_id = models.PositiveIntegerField(blank=True, null=True)
master_Model = GenericForeignKey('masterModel_type', 'masterModel_id')
答案 0 :(得分:0)
通过三次编辑中提到的步骤解决了这些挑战。这不是我期望的清洁解决方案,但它正在发挥作用..