alm*_*ner 1 django django-models django-migrations
我在我的一个模型中添加了一个用户外部字段并进行了迁移。系统提示我添加默认值。user 的默认值假设为 Int,表示 user_id。我没有添加 Int,而是添加了字符串“username”。
现在我被困住了:
return int(value)
ValueError: invalid literal for int() with base 10: 'testuser'
Run Code Online (Sandbox Code Playgroud)
我删除了与模型关联的所有对象,并尝试迁移,但这不起作用,出现相同的错误。( Model.objects.all().delete())
我恢复到以前的迁移,这并没有解决问题,当我迁移时,它得到了相同的 ValueError。( ./manage.py migrate app 0037_auto_20170330_0326)
最后,我删除了新的外国字段,但这也没有解决问题。
在这种情况下我还有什么其他选择?
我的模型非常简单:
class Chat(models.Model):
user = models.ForeignKey(User) #new field that was added
message = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
如果您已经在迁移 0036,请尝试以下步骤:
删除迁移0037_auto_20170330_0326。它将出现在以下位置:
appfolder -> migrations -> 0037_auto_20170330_0326.py
Run Code Online (Sandbox Code Playgroud)设置null=True在user现场的Chat模型:
user = models.ForeignKey(User, null=True)
Run Code Online (Sandbox Code Playgroud)再次迁移!
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |