我試圖在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