问题标签 [django-fixtures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2606 浏览

django - Django测试抱怨夹具

转储数据python manage.py dumpdata --format json --indent 4 --exclude auth.permission --exclude contenttypes > app/fixtures/app_test_data.json

运行 python manage.py test app,我得到以下错误:

有任何想法吗?使用 dumpdata/Django 的测试运行器时,我遇到了很多类似的问题。

0 投票
1 回答
1532 浏览

django - Django 固定装置,加载大量数据

所以我有两个 200mb JSON 文件。第一个需要 1.5 小时才能加载,第二个需要 24 多个小时(因为没有通过控制台更新,我不知道它是否还在继续,或者如果它冻结了,所以我停止了它)。

由于 loaddata 不能很好地工作,我编写了自己的脚本来加载数据,同时还将最近保存的内容输出到数据库中,但我注意到脚本(连同我的计算机)的速度越长,它的速度就越慢。所以我不得不停止脚本 -> 重新启动我的计算机 -> 在我停止的数据部分恢复,这比在整个过程中运行脚本要快。这是一个乏味的过程,因为我每 4 小时重新启动计算机大约需要 18 小时才能完全加载所有数据。

我想知道是否有更好的解决方案来加载大量数据?

编辑:我意识到有一个加载原始 SQL 的选项,所以我可以尝试一下,尽管我需要复习我的 SQL。

0 投票
1 回答
2681 浏览

django - Django 固定装置。正在加载初始数据进程被杀死

我一直致力于将两个遗留数据库中的 57k+ 条记录提炼和重构为一个与 Django 兼容的实体。现在,当我完成后,我将它作为固定装置转储,并尝试将其加载到生产环境中。

我的问题是该过程在短时间内被“杀死”。我的流程是:

结果:

我必须注意,这个过程在我的开发机器上没有问题。另一个注意事项是我的开发机器正在运行 postgres 9.2,在生产中有 9.1 - 这会是个大问题吗?

我该如何调试呢?我什至不知道打印模糊的“Killed”有什么问题。South 是否存储任何日志?任何帮助表示赞赏。

编辑:正如 Paulo Scardine 指出的那样,问题在于 JSON 文件太重。首先我尝试了 XML 转储,它走得更远,但最终也被杀死了。一种方法是 SQL 转储。对于 Postgres,对我有用的是:

0 投票
0 回答
118 浏览

django - Django 固定装置 - 使用 OneToMany 链接两个模型

我正在使用两个表预先填充我的 Django 应用程序并使用csvimport,这很棒。这两个模型具有 OneToMany 关系;每个测试结果都与一个学校相关。每所学校有多个测试结果。

这两个模型有共同的类变量“psid”,我想用它来链接它们。

前任。模型.py:

我的问题是,鉴于我正在导入数据,我如何确保这两个表由“psid”列链接?如果我没有预先填充,我会使用 ForeignKey,但是我不相信这会在这里起作用。同样,NaturalKeys 似乎不一定会根据需要将两个模型与“psid”链接在一起。

0 投票
2 回答
3407 浏览

python - 带有自然键的 Django loaddata 未查询正确的外键

这是我的问题。我正在尝试加载一些与另一个模型具有自然键关系的数据。

我修改了父模型以生成自然键。

我使用以下命令从旧数据库中导出了数据:

然后我尝试使用以下命令导入新数据库:

此时我得到错误:

它正在尝试查询 voyage_voyage.id 而不是 get_by_natural_key 函数中指定的 voyage_voyage.voyage_id。我仔细检查了一下,夹具中的密钥在 voyage_id 字段中。下面是我的代码和示例夹具。

父模型:

儿童型号:

夹具:

0 投票
2 回答
1910 浏览

python - Django Testcase,可以在类/模块级别加载夹具吗?

我正在尝试将 json 固定装置加载到 Python 2.6/Django 1.4 单元测试中。我可以在测试级别使用 Django 的 TestCase,但加载需要 8-10 秒(2M 的 json,不会变得更小)。因此,运行十几个测试真的很慢,我想只加载一次测试数据库。看起来它可能在 Python 2.6 中添加unittest2,但我还没有让它工作。

尝试setupModule()也没有用。setup 函数肯定会被调用,但似乎并不支持fixture。

所以Django的TestCase会读取fixture,而unittest2的TestCase会在类/模块级别做事。有没有办法结合这个操作,并在类/模块级别读取固定装置?我尝试了多重继承,但无法让它加载数据。

更新:根据@robjohncox 的建议,此代码在模块级别:

似乎确实创建了一个数据库。但随后 Django 似乎为每个测试创建了另一个数据库(它是空的)。不知道如何告诉 TestCase 使用第一个 db(我尝试了 Django 和 unittest2 TestCase)。

0 投票
0 回答
326 浏览

django - django MPTT模型和应用夹具

我正在使用 django MPTT 模型。

我将 MPTT 模型子类化,然后尝试使用 JSON 中提供的 initial_data 将夹具添加到自定义模型。

父 TreeForeignKey 是可选的(空白=True,null=True)

当我从 initial_data 应用 JSON 夹具时,它要求提供字段“lft”、“rght”、“tree_id”、“level”。

...运行 python manage.py syncdb 时

这些是来自 MPTT 的字段。

有没有办法从夹具数据中排除或解决这个问题?

谢谢

0 投票
1 回答
39 浏览

python - 在用于填充多站点的夹具文件中引用 models.site

我制作了一个应用程序并将上面的夹具放在目录名称“夹具”中。当我运行时python manage.py loaddata migrate/fixtures/sites_config.json,我收到错误:

安装夹具“migrate/fixtures/sites_config.json”时出现问题:模型标识符无效:“django.contrib.Site”

  • 如何在夹具中引用站点模型?
  • 这是在代码中配置站点的明智策略吗(因此我不必在管理员中手动添加站点)
  • 我是否应该使用此策略来管理将内容迁移到 django 站点。即,我为每种内容类型创建包含内容的固定装置,然后在上线之前将它们迁移?
0 投票
1 回答
40 浏览

django - 每当创建新用户时,我都想为该用户创建一个对所有用户都相同的记录“入门工具包”

我已经阅读了 Django 的文档,这些文档表明在创建 APP 时使用了 Fixtures 或 SQL。但是我想在每次添加新用户时添加相同的夹具。我没有看到一个简单的方法来做到这一点。我认为 signal.py 可能是一种方法,但我无法看到如何确保在没有 ID 的情况下添加 Fixture。

夹具文档:https ://docs.djangoproject.com/en/dev/howto/initial-data/

例如,建议为每个用户启动 5 个任务。因此,每次创建新用户时,我都希望将这些任务添加到新用户帐户中。任务对用户有一个 FK。

我愿意就如何完成这项工作提出建议。

0 投票
1 回答
102 浏览

python - 我可以运行 django 测试但没有模型定义吗?

我的问题是。这是一个旧的 django 项目,我需要处理它。

由于未知原因,该项目不使用 django 模型。相反,它定义了一些类来通过纯 sql 对数据库进行 CRUD。并且该项目根本没有测试。

现在,我想为项目添加单元测试(视图/模型/等等)。但我想知道这个测试是否可以使用没有模型定义的夹具?

我没有太多时间亲自测试这个。那么有没有人知道这件事?