Django MPTT 重复键值违反唯一约束

Django MPTT duplicate key value violates unique constraint

我练习 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)

我创建了一些数据:

现在,我需要在 BuildingB

下创建 4F
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.  

我该如何解决??

据我了解,您希望您的名字在整个建筑物中是唯一的。 为此,从 name 字段声明中删除 unique=True 并添加元选项:

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', ), )