python - Django 完整性错误 1452

标签 python django django-users django-contrib

我有一个应用程序,它使用我定义的 User 类运行良好。经过几周的研究,我意识到我需要用户身份验证,并决定使用 django 的 User 类来代替(当我开始时,我并没有真正理解它是如何工作的,因为我对 Django 很陌生)。我摆脱了与自定义 User 类的外键关系,并添加了与 django.contrib.auth.models.User 的外键关系,但是现在当我使用管理页面添加新对象时,我得到:

Exception Type: IntegrityError at /admin/po/purchaseorder/add/
Exception Value: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`po`.`po_purchaseorder`, CONSTRAINT `django_user_id_refs_id_fe5f38af` FOREIGN KEY (`django_user_id`) REFERENCES `auth_user` (`id`))')

我真的不明白这个错误。这是相关的类代码:

from django.contrib.auth.models import User

class PurchaseOrder(models.Model):
    user=models.ForeignKey(User)
    request_number = models.AutoField(primary_key=True)
    #More fields 

任何人都可以给我任何关于此错误的解释,以及为什么我现在使用内置的 User 而不是我自己的类而得到它?

最佳答案

可能发生的情况是您更新了模型以包含 Django 的用户定义,但尚未更新数据库。

IntegrityErrors 意味着如果执行查询,数据库中将违反某些约束。我确信更新数据库架构(又名python manage.pysyncdb)就能解决问题。

如果您能够删除架构并再次创建,那么这可能会解决问题。如果没有,只需更新您的模型所代表的修改表。

希望这有帮助!

关于python - Django 完整性错误 1452,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279103/

相关文章:

python - 未导入请求包 python

python - Unicode 字典键问题

python - 如何在 Django 中设置默认值,同时从模型中过滤对象

django - 管理 UserCreationForm 属性和字段

python - 自定义 django 用户模型不一致的迁移历史错误

Python-从txt创建数组

python - 以内存有效的方式迭代添加 pandas 数据帧

django - 如何解决不存在的字段的完整性错误?

django - Django 可重用应用程序中的功能测试

python - 将到期时间设置为 django 密码重置 token