当前位置: 首页 > 面试题库 >

在Django中加载fixture时contenttype的问题

杜俊晤
2023-03-14
问题内容

由于内容类型冲突,我无法将Django固件加载到我的MySQL数据库中。首先,我尝试仅从我的应用程序中转储数据,如下所示:

./manage.py dumpdata escola > fixture.json

但由于我的应用程序“ escola”使用了其他应用程序中的表,所以我一直没有遇到外键问题。我一直在添加其他应用程序,直到我明白了:

./manage.py dumpdata contenttypes auth escola > fixture.json

现在的问题是,当我尝试将数据加载为测试装置时,违反了以下约束条件:

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")

问题答案:

manage.py dumpdata --natural将使用更持久的外键表示形式。在Django中,它们被称为“自然键”。例如:

  • Permission.codename被用来支持 Permission.id
  • User.username被用来支持 User.id
    阅读更多:“序列化django对象”中的自然键部分

其他一些有用的参数dumpdata

  • --indent=4 使它易于阅读。
  • -e sessions 排除会话数据
  • -e admin 排除管理员网站上管理员操作的历史记录
  • -e contenttypes -e auth.Permission排除在每次期间从模式自动重新创建的对象syncdb。请仅将其与一起使用--natural,否则可能会导致ID编号不一致。


 类似资料:
  • 问题内容: 有谁知道如何使用sql夹具为auth.User加载初始数据?对于我的模型,我只是在名为sql的文件夹中有一个 .sql文件,syncdb可以很好地完成它的工作。但是我不知道如何为auth.User模型执行此操作。我已经用谷歌搜索了,但是没有成功。 提前致谢, 奥尔多 问题答案: 感谢您的回答。我找到了最适合我的解决方案,而巧合的是Brian的建议之一。这里是: 首先,我断开了在sync

  • 问题内容: 当Django启动时,如何从mysql数据库加载资源并将其放入内存(Redis)中,以供所有应用程序使用。 我已经看到了这个 [https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.ready] 但是他们提到在ready函数中不使用db连接。我的网站启动时该怎么办? 我还可以在read

  • (Aaronpythonenv)aaron@aaron-n550jk:~/mysite$python manage.py makemigrations轮询回溯(最近的调用为last):文件“manage.py”,第10行,在execute_from_command_line(sys.argv)文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/sit

  • 下面是我的global.java 加载时,我收到以下错误 ConstructorException:null;不能为标记构造java对象:yaml.org,2002:models.post;Exception=无法为javabean=model.post@1创建property=author;找不到适合类模型的具有3个参数的构造函数。用户 知道为什么会这样吗?

  • 问题内容: 是否可以在运行时动态加载Django应用?通常,应用是在初始化时使用settings.py中的INSTALLED_APPS元组加载的。但是,是否可以在运行时加载其他应用程序?我在不同情况下遇到此问题。例如,一种情况是在测试期间出现的,当时我想动态加载或卸载应用程序。 为了使问题更具体,想象一下我有一个名为我放置应用程序的目录,并且我想自动安装安装在其中的任何新应用程序,而无需手动编辑s

  • fixture config.py lockutils.py mockpatch.py moxstubout.py