【发布时间】:2013-04-19 01:59:55
【问题描述】:
我有一个模型
class Mystery(models.Model):
first = models.CharField(max_length=256)
second = models.CharField(max_length=256)
third = models.CharField(max_length=256)
player = models.ForeignKey(Player)
我添加了播放器 ForeignKey,但是当我尝试使用 South 迁移它时,似乎无法使用 null=False 创建它。我有这条消息:
“Mystery.player”字段没有指定默认值,但 非空。由于您要添加此字段,因此您必须指定默认值 用于现有行的值。你愿意:
1. 现在退出,并在models.py中的字段中添加一个默认值
2. 为现有列指定一次性值
我使用这个命令:
manage.py schemamigration myapp --auto
非常感谢!
【问题讨论】:
-
如果您的数据库已经包含神秘对象,那么南必须知道在
player字段中输入了什么值,因为它不能为空。一种可能的解决方案:选择 2。指定一次性 ...,然后输入 1。因此,您所有现有的神秘对象现在都将指向具有 pk = 1 的 Player。然后您可以在管理员中更改(如果需要)这个。 -
非常感谢您的帮助!
-
我把它写成答案
标签: django django-models django-south