我看到一些ppl在我面前有這個問題,但在舊版本的Django上,我在1.2.1上運行。Django unique_together不能與ForeignKey一起工作=無
我有一個模型,看起來像:
class Category(models.Model):
objects = CategoryManager()
name = models.CharField(max_length=30, blank=False, null=False)
parent = models.ForeignKey('self', null=True, blank=True, help_text=_('The direct parent category.'))
class Meta:
unique_together = ('name', 'parent')
每當我試圖在管理類別保存設置爲無父,它仍然有效時,有具有相同的名稱和父集另一類到無。
想法如何優雅地解決這個問題?
的一般方法看起來不錯,在這裏,但我'不遵循'如果self.parent和Category.objects.filter(name = self.name).exists():'的邏輯''這看起來像我正在檢查父母是否存在和另一個具有相同名稱的類別存在。這是我們想要的?如果self.parent == None和FolderUpload.objects.filter(name = self.name,parent = None).exists():'? – 2011-07-23 19:28:37
我認爲你是對的。我會使用parent_id__is null = True而不是parent = None。它可能需要一個exclude()來忽略當前對象。 – Alasdair 2011-07-23 22:11:35
我會離開一個星期,所以無法糾正答案。隨意編輯它,如果你想/可以。 – Alasdair 2011-07-23 22:12:45