我练习django-mptt并面对问题
这是我的models.py
class Genre(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
我创建了一些数据:
现在,我需要在4F
BuildingB
floor3 = Genre.objects.create(name="3F", parent= buildingB)
但面临问题:
IntegrityError: duplicate key value violates unique constraint "myapp_genre_name_key"
DETAIL: Key (name)=(3F) already exists.
我该如何解决?
答案 0 :(得分:0)
根据我的理解,您希望您的名字在整个建筑中都是独一无二的。
为此,请从unique=True
字段声明中删除name
并添加元选项:
class Genre(MPTTModel):
name = models.CharField(max_length=50)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
class Meta:
unique_together = (('name', 'parent', ), )