我看到一些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