【问题标题】:django model integrity errordjango模型完整性错误
【发布时间】:2014-04-03 04:05:57
【问题描述】:

所以在取消注释数字字段之前,我会使用此错误 Programmingerror:exampeuser.number has no relation to blahblah

class ExampleUser(models.Model):
    #number = models.CharField(max_length=15)
    phoneID = models.CharField(max_length=30)
    verified = models.BooleanField(default=False)
    verificationNumber = models.CharField(max_length=5)

现在我评论它和 syncdb 以及所有内容,它给了我一个 IntegrityError:当我尝试将其保存在管理网站中时,“userPhone”列中的空值违反了非空约束。

userPhone 是我不久前使用的一个字段,并将其更改为数字。

每次我尝试在管理站点中保存模型对象时都会发生这些错误。

我的模型似乎仍在与我之前所做的旧更改发生交互。我是 Django 新手。

我的 installed_app 上也有南,我还没有迁移或使用它进行任何配置。请帮忙,这很令人沮丧

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    您似乎正在尝试迁移模型,例如,您编写模型,然后同步它,然后修改它,更改一些数据类型,删除一些属性并添加一些其他属性,然后再次同步它.

    Django 默认不支持此功能,您需要使用 South(1) 库,通过此更改迁移您的模型。

    除非您使用 django 1.6,否则在此版本中他们添加了迁移,这里是文档。 https://docs.djangoproject.com/en/dev/topics/migrations/

    当您需要同步修改后的模型时,您需要通过迁移来完成,而不是通过 syncdb。

    (1)http://south.aeracode.org/

    【讨论】:

    • 所以与其去 manage.py syncdb ...我应该从现在开始向南迁移?
    • 正确,但如果您尚未创建任何迁移,则应将您的应用转换为南。
    • 迁移在 Django 1.7(不是 1.6)中
    猜你喜欢
    • 2012-11-15
    • 2013-03-18
    • 2015-08-10
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多