Django.db.utils.IntegrityError:(1062,键&;#39;content_type_id&;#39;&;的重复条目&;#39;22-添加_&; [英] django.db.utils.IntegrityError: (1062, "Duplicate entry '22-add_' for key 'content_type_id'")
本文介绍了Django.db.utils.IntegrityError:(1062,键&;#39;content_type_id&;#39;&;的重复条目&;#39;22-添加_&;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我在基本站点中尝试syncdb时,它工作正常(在任何时候),但尝试与其他站点只在第一次有效,如果我们下次尝试向上,它会抛出如下所示的整体错误
-
Django.db.utils.IntegrityError:(1062,"重复条目
‘22-Add_Somesame’for key‘content_type_id’")
一旦我删除了该项目中的多个数据库路由器设置,就意味着syncdb(在任何时候)都能正常工作。
那么这是否与多个数据库路由器有关?还有别的吗?请对此提出建议,谢谢。
推荐答案
这里的问题与数据库路由器和Django系统对象有关。我在使用多个数据库和路由器时也遇到过同样的问题。在我的记忆中,这里的问题是Auth.Permission内容类型,它们在数据库之间混合在一起。否则,syncdb脚本会尝试在所有数据库中创建这些内容,并为某些对象创建权限内容类型,该对象的ID已为本地模型保留。
我有以下内容
BASE_DB_TYPES = (
'auth.user',
'auth.group',
'auth.permission',
'sessions.session',
)
然后在数据库路由器中:
def db_for_read(self, model, **hints):
if hasattr(model, '_meta') and str(model._meta) in BASE_DB_TYPES:
return 'base_db' # the alias of base db that will store users
return None # the default database, or some custom mapping
编辑:
此外,异常可能会说您正在为模型‘somesame
’声明权限‘add_somesame
’,而Django会自动为所有对象创建add_
、delete_
、edit_
权限。
这篇关于Django.db.utils.IntegrityError:(1062,键&;#39;content_type_id&;#39;&;的重复条目&;#39;22-添加_&;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文