Django 南部自动迁移添加错误的唯一约束
我的一个模型中有以下代码:Django 南部自动迁移添加错误的唯一约束,django,django-models,django-south,Django,Django Models,Django South,我的一个模型中有以下代码: channel = models.OneToOneField(Channel, related_name='stories', null=True, blank=True, unique=False) 请参见unique=False?当我使用south创建自动移植时,它希望添加一个唯一的约束: ./manage.py schemamigration core --auto ~ Changed field channel on core.Story + Added
channel = models.OneToOneField(Channel, related_name='stories', null=True, blank=True, unique=False)
请参见unique=False
?当我使用south创建自动移植时,它希望添加一个唯一的约束:
./manage.py schemamigration core --auto
~ Changed field channel on core.Story
+ Added unique constraint for ['channel'] on core.Story
什么给你 这里是Django,不是南方。
唯一性
内置于OneToOneField
的定义中。(您可以在源代码中看到它。)
如果
unique
为False,则同一频道可以有多个故事
。这是一个多人关系,因此您可能希望它成为一个ForeignKey
字段。新问题:我将字段更改为ForeignKey,现在从南方收到此错误:字段“Story.channel”没有指定默认值,但不是NULL
。如果我有null=True
,它为什么会这样说呢?我猜South在尝试更改字段类型时遇到了问题。作为测试,尝试添加具有相同参数的新字段,看看是否有错误。