我试图在Django ORM中进行以下操作。有一个Publish
模型,管理不同类型的内容(其他模型)的发布。这样我就可以轻松完成Publish.objects.all()
并按日期排列。我做了一个通用模型,如下所示:Django:与Contenttypes的通用一对多关系
class Publish(models.Model):
""" Intermediary model for displaying and managing different types of content """
status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=1)
publish = models.DateTimeField(_('publish'), default=datetime.datetime.now)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
的问题是,我想这个附加到不同的型号。这必须是OneToMany
的关系。因为文章只能有一个发布日期。据我所知,通用关系是ManyToMany
关系。
我试图限制在GenericTabularInline
的max_num
和extra
在admin.py,但是这是不是一个伟大的工作解决方案。有谁知道如何将发布模型附加到几个不同的模型,使其成为必需的一对多关系?很多人都是发布模式,一个是为前者。一篇文章。
谢谢你的回答。我的最终解决方案是我确实在模型级别添加了“unique_together”的验证。 比我更改了管理视图来编辑必须链接到“发布”的模型,并在该视图内添加了“发布”模型表单。现在看起来''Publish''是模型的一部分。 – wunki 2009-12-07 20:21:21