问题标签 [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 回答
171 浏览

django - 原始 Python 中的装置?

有没有办法在原始 Python 中使用固定装置,例如,从外部文件创建初始数据?我目前在 JSON 中有固定装置,实际上将它们迁移到一种 CSV 文件并让 Python 解析这些并插入它们实际上可能更有效。有没有办法在 Django 中做到这一点?

0 投票
0 回答
148 浏览

django - 当“loaddata”不起作用时,如何创建用于测试的夹具?

我正在尝试为要扩展的开源项目创建一些测试装置。

有一个Node模型,它是Question模型的子类。

似乎问题在于 Node 使用了自定义管理器

我可以创建固定装置,但它们无法重新加载,因为所有记录都没有转储。

当我尝试通过loaddata加载固定装置时,出现此错误:

由于某种原因,未生成超类 Node。

有没有其他方法可以创建夹具以便我可以测试这个项目?

0 投票
1 回答
927 浏览

django - 如何最好地初始化不能作为固定装置的一次性 Django 对象?

我正在用 Django 编写一个应用程序,它有一些我需要实例化的站点范围的固定对象,由于某种原因,它们不能是固定装置。

例如,某些(例如Permissions)我不能硬编码 PK,因为我不能确定它们是否会按特定顺序加载(如果我使用 pk=null,那么如果它们已经存在,我会得到一个 IntegrityError .)

其他(例如Sites)取决于 中的值settings.py编辑:这些需要在每次部署项目时运行,否则我可以按照下面 super9 的建议使用 South 的数据迁移。

由于这些是 Django 模型,因此它们与我项目中的任何应用程序都没有直接关系。加载它们最有意义,settings.py但这会导致循环导入。它可以正常工作,urls.py但是将加载代码放在那里似乎很笨拙且不合时宜。

我研究了将接收器挂钩post_syncdb如下:

但是,由于我使用的是 South,因此根据文档,它仅post_syncdb在首次创建表时发送。syncdb每次迁移后我都可以手动调用,但不希望这样做。

我几乎决定将它们放入urls.py或最密切相关的应用程序中models.py,但我想我会在这里检查一下是否有一种可接受的方式来加载无法作为固定装置加载的固定对象。

0 投票
2 回答
4699 浏览

django - 启用了 auto_now_add 选项的 DateTimeField 是否必须在夹具中具有值

我的模型创建字段配置如下:

在 JSON 固定装置中,我不想为 created 声明值,但是当我尝试加载固定装置 (loadata) 时出现错误:

created 不能为 NULL

所以我必须在固定装置中提供创造价值还是有其他方式?

0 投票
4 回答
6290 浏览

django - 如何在 django 中使用 QuerySet 制作固定装置?

Django dumpdata 命令被破坏,因为它不支持任何合理的方法来缩小转储的数据量。我需要创建各种查询集的固定装置(而且我不需要关心从外部模型关系中转储对象)。限制这些查询集的项目数量,比如 django-test-utils makefixture 是不够的。试图通过使用带有自定义管理器的代理模型来实现这一点,但这种方法不起作用 - dumpdata 省略了代理模型(这是合理的)。

0 投票
2 回答
893 浏览

django - Django 忽略了我的 TestCase 固定装置

我有 Django 1.4。在我的 test.py 中,我有必要的 TestCase 导入:

为了隔离问题,我添加了以下行:

到默认示例测试用例,即

使用 django-admin.py 转储数据,我在 customers/fixtures 目录中创建了一个名为“westeros”的夹具文件,其中“customers”是 settings.INSTALLED_APPS 中列出的应用程序。

当我运行测试时,无论多么冗长,Django 都会简单地忽略夹具并通过test_basic_addition测试。没有错误,没有夹具加载。就好像 TestCase 导入不存在一样。关于可能出错或如何调试的任何想法?

0 投票
1 回答
875 浏览

django - Django Admin:为什么有些字段显示为空?

我有一个带有“发布”模型的 Django 博客,如下所示:

我已使用该命令将一堆“发布”对象(已完成上述所有字段)上传到我的数据库python manage.py loaddata fixturename.json。但是,当我登录管理站点以修改对象时,我为“类别”字段上传的值不会显示为字段下拉列表中的预选值。为什么是这样?有什么办法可以解决吗?

编辑:这是我的 json 夹具文件中的片段:

0 投票
0 回答
558 浏览

mysql - django 加载固定装置在 unicode 数据上失败

我通过转储数据保存了一堆夹具,这里是一个例子:

当我做

manage.py 加载数据 core_question.json

,出现以下错误:

警告:不正确的字符串值:第 1 行的列 'first_name' 的 '\xD0\x94\xD0\xB8\xD0\xB0...'

我虽然它可能是数据库的东西,但它似乎都是 unicode:

以及架构排序规则:

CATALOG_NAME,SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME,SQL_PATH NULL,reviewer,utf8,utf8_general_ci,NULL

还有什么我想念的吗?

0 投票
4 回答
335 浏览

python - 如何通过 package_name.module_name.class_name "path" 实例化类

我想实现一些类似于 django 夹具系统的东西,其中在夹具中设置model属性,该属性指示夹具的模型类。它看起来像这样

我的问题是处理此类字符串以创建此“路径”指向的类的实例的标准方法是什么。我认为它应该看起来像:

  1. 将其拆分为模块名称和类名称部分
  2. 加载模块(如果未加载)
  3. 按名称从模块中获取类
  4. 实例化它

我应该怎么做?

编辑:我想出了一个肮脏的解决方案:

它的工作是肮脏的,但是由于使用 exec 和通过恶意准备夹具来操纵执行的可能性。应该如何正确完成?

0 投票
2 回答
177 浏览

django - Django 和动态示例数据

initial_data.json我正在尝试找到一种方法来轻松地从Django 中生成示例/演示数据集。

从本质上讲,夹具和initial_data.json做我需要的,除了日期是静态的......

我的应用程序使用日期来显示/排序其他容易生成的信息(评论、分数等),我想创建一个完整的数据集,以便能够向潜在客户展示应用程序的功能;问题出现在日期上。即使我运行syncdb(自动包括 my initial_data.json),日期也是静态的,因此所有信息都将与这些特定日期相关,而不是与今天相关。随着时间的推移,这些数据将在应用程序中变得不那么明显,因此无法向潜在客户充分展示其能力。

有没有一种简单的方法来更新日期信息,initial_data.json以便日期与当前的实际日期保持相关,然后我可以使用这些新日期再次运行 syncdb?(假设这一切都在本地机器上,只是为了向客户演示......而不是在服务器、生产或其他地方)。

我希望这是有道理的?!