django是否会为一个模型获取错误的内容类型id?

q5iwbnjs  于 2021-06-19  发布在  Mysql
关注(0)|答案(10)|浏览(240)

在django admin中编辑对象(用户276)时,出现外键错误:

IntegrityError at /admin/auth/user/276/change/

(1452, 'Cannot add or update a child row: a foreign key constraint fails 
(`my_db_name`.`django_admin_log`, CONSTRAINT 
`django_admin__content_type_id_c4bce8eb_fk_django_content_type_id` 
FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`))')

在检查django_admin_log表中用户276的记录时,我看到字段content_type_id是126。 `mysql> select id, object_id, content_type_id, user_id from django_admin_log order by id; +----+

vd8tlhqk

vd8tlhqk1#

---+ | id | app_label | model | +-----+

92dk7w1h

92dk7w1h2#

-------+---------+ 9 rows in set (0.00 sec)当我查看django\u content\u types表时,我看到id 126确实存在,并且与正确的类型相关:mysql> select * from django_content_type order by id; +-----+

7xzttuei

7xzttuei4#

-------+---------+ | id | object_id | content_type_id | user_id | +----+

vcirk6k6

vcirk6k67#

-------+---------+ | 1 | 276 | 126 | 276 | | 6 | 276 | 126 | 276 | | 8 | 276 | 126 | 276 | | 9 | 276 | 126 | 276 | | 10 | 276 | 126 | 276 | | 11 | 276 | 126 | 276 | | 13 | 1 | 144 | 276 | | 16 | 1 | 182 | 276 | | 19 | 276 | 126 | 276 | +----+

y4ekin9u

y4ekin9u8#

---+ | 124 | auth | group | | 125 | auth | permission | | 126 | auth | user | | 127 | contenttypes | contenttype | | 128 | sessions | session | | 129 | sites | site | | 130 | admin | logentry | | 131 | account | emailconfirmation |` 因此,对于较旧的日志,这里的一切似乎都是正确的,但是现在,出于某种原因,当在admin中编辑用户时,django正在尝试向用户276的django\u admin\u log中插入一行,其内容id不是126(否则我们将不会得到fk约束)。
问题是:django怎么会为一个模型获取不正确的内容类型id?还是发生了别的事?
其他信息:
我不认为我在admin.py文件中做了任何有趣的事情,但请询问是否要查看任何文件。
我用mysql连接做了一件非常有趣的事情,它是一个使用djangodb多租户的多租户架构站点
在ubuntu上使用django 2.0和mysql。

相关问题