当在【Django】管理网站中向数据库添加数据时出现IntegrityError错误时的处理方法
环境
-
- Windows 10
-
- Python 3.7.3
-
- Django 2.2.2
- PostgreSQL 10.12
背景: 背景
我在一本Django的入门书上学习时,在管理网站创建数据到数据库的部分遇到了以下类似的错误。
在/admin/diary/diary/add/处发生完整性错误。
表”django_admin_log”中的外键”django_admin_log_user_id_c564eba6_fk_auth_user_id”违反约束条件。
详细信息:表”auth_user”中(user_id)=(3)的记录不存在。
请求方法:POST
请求URL:http://127.0.0.1:8000/admin/diary/diary/add/
Django版本:2.2.2
异常类型:IntegrityError
异常值:表”django_admin_log”中的外键”django_admin_log_user_id_c564eba6_fk_auth_user_id”违反约束条件。
详细信息:表”auth_user”中(user_id)=(3)的记录不存在。
异常位置:C:\Users\grin\Anaconda3\envs\django\lib\site-packages\django\db\backends\base\base.py的_commit函数,第240行
Python可执行文件:C:\Users\grin\Anaconda3\envs\django\python.exe
Python版本:3.7.3
似乎有Django_admin_log的完整性错误。
据说在django_admin_log表中,包含了与旧的auth_user表的外键关系。因此,需要删除这个外键关系并重新创建表格。
解决方法
面向对象+Python开发初级进阶者指南电子书已全新上线!只需点击一下链接即可免费下载,快来加入Python学习的大家庭吧!
参考资料/链接
-
- https://www.shoeisha.co.jp/book/detail/9784798162508
-
- https://stackoverflow.com/questions/19410712/integrityerror-at-admin-course-course-add-in-django
-
- https://stackoverflow.com/questions/15124523/integrity-error-on-django-admin-log-after-updating-existing-site-to-new-django-1/27028187#27028187
- Python Django チュートリアル(1)