我正在加载使用dumpdata创建的fixture,并获得以下异常:
Problem installing fixture 'db_dump.json': Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 174, in handle
obj.save(using=using)
File "/usr/lib/python2.6/site-packages/django/core/serializers/base.py", line 165, in save
models.Model.save_base(self.object, using=using, raw=True)
File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 526, in save_base
rows = manager.using(using).filter(pk=pk_val)._update(values)
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 491, in _update
return query.get_compiler(self.db).execute_sql(None)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 869, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 735, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py", line 234, in execute
return Database.Cursor.execute(self, query, params)
IntegrityError: columns app_label, model are not unique
Run Code Online (Sandbox Code Playgroud)
这是一个sqlite3后端.
更新:使用自然键在这里没有区别. …
我在文档中查看Django夹具,没有提到将图像预加载到数据库中.我不可能是唯一需要这样做的人.这可能吗?如果是这样的话?如果没有,是否有可用的解决方法?
谢谢,麻烦您了.
我试图以更漂亮的方式打印我的Django灯具.
我输出了灯具:
python manage.py dumpdata >> fixture_app.json
这将在一行中创建一个包含1000个字符的文件.当我尝试使用文本编辑器(TextMate)查看文件时,编辑器会挂起.
无论如何,是否可以使用多条线以更漂亮的方式导出灯具?
无论如何加载一个夹具并装载多个夹具?
我最好输入:
python manage.py loaddata all_fixtures
Run Code Online (Sandbox Code Playgroud)
并且必须加载所有数据而不必键入所有内容.这可能吗?
在Django 1.7之前,当使用Django Sites Framework时,可以/应该使用Initial Fixtures定义初始数据.
的myproject /装置/ initial_data.json
Run Code Online (Sandbox Code Playgroud)[ { "pk": 1, "model": "sites.site", "fields": { "domain": "domain1", "name": "name1" } }, { "pk": 2, "model": "sites.site", "fields": { "domain": "domain2", "name": "name2" } }, { "pk": 3, "model": "sites.site", "fields": { "domain": "domain3", "name": "name3" } } ]
由于它是一个全局项目设置,我在项目根目录中添加了一个"fixtures"文件夹,并将其添加到FIXTURE_DIRS.
# Used to search fixture files directories.
# Fixture files are files that provide initial data to be
# inserted in the database. (>python manage.py loaddata) …Run Code Online (Sandbox Code Playgroud) 我有模型创建的字段可配置如下:
created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
在JSON fixture中我不想为create创建值,但是当我尝试加载fixture(loadata)时,我收到错误:
created可能不是NULL
所以我必须在灯具中提供创造价值或者还有其他方法吗?
Django dumpdata命令被破坏,因为它不支持任何合理的方法来缩小转储的数据量.我需要创建一个包含各种查询集的夹具(我不需要关心从外部模型关系中转储对象).限制这些查询集的项目数量,例如django-test-utils makefixture是不够的.试图通过使用具有自定义管理器的代理模型来实现这一点,但这种方法不起作用 - dumpdata省略了代理模型(这是合理的).
我有一个带有条目列表的装置。例如:
[
{
"fields": {
"currency": 1,
"price": "99.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 1
},
{
"fields": {
"currency": 2,
"price": "139.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 2
}
]
Run Code Online (Sandbox Code Playgroud)
这只是每个条目的初始数据(价格可能会改变)。我希望能够向该装置添加另一个条目并加载它,loaddata但不更新数据库中已存在的条目。
有没有办法做到这一点?类似于--ignorenonexistent但对于现有条目。
如何通过Django灯具添加SUPERuser(不仅仅是用户)?
假设我想登录:admin,密码:admin.
转储数据 python manage.py dumpdata --format json --indent 4 --exclude auth.permission --exclude contenttypes > app/fixtures/app_test_data.json
运行python manage.py测试应用程序,我收到以下错误:
IntegrityError: Problem installing fixtures: The row in table 'django_admin_log' with primary key '517' has an invalid foreign key: django_admin_log.content_type_id contains a value '28' that does not have a corresponding value in django_content_type.id.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我使用dumpdata/Django的测试运行器有很多类似的问题.