问题标签 [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 投票
1 回答
4808 浏览

django - 使用夹具将 django admin auth.groups 和用户迁移到新数据库

这是场景:

我正在使用 django 的管理界面,我希望能够通过固定装置加载用户和组(如果可能的话。)我可以像这样转储用户/组:

但是在将数据加载到全新的数据库中时...

我遇到与外键等有关的各种错误。这是一个例子:

如果有人能指出我正确的方向,我将不胜感激。提前致谢!

0 投票
2 回答
1313 浏览

django - 将信息从 Scrapy 爬虫持续导出到 Django 应用程序数据库的最佳方法是什么?

我正在尝试构建一个功能类似于商店的 Django 应用程序。项目是从互联网上抓取的,并随着时间的推移(比如每隔几天)不断更新 Django 项目数据库。我正在使用 Scrapy 框架执行抓取,虽然有一个实验性的DjangoItem 功能,但我宁愿远离它,因为它不稳定。

现在,我的计划是使用 Scrapy XMLItemExporter此处的文档)创建已爬取项目的 XML 文件,并将这些文件作为 XML 固定装置(此处的文档)使用loaddata到 Django 项目中。这似乎没问题,因为如果两个进程之一搞砸了,它们之间就有一个文件中介。将应用程序作为一个整体模块化似乎也不是一个坏主意。

一些担忧是:

  • 这些文件可能太大而无法读入 Django 的loaddata.
  • 当可能有更好或更简单的解决方案时,我在这方面花费了太多时间,例如直接导出到数据库,在这种情况下是 MySQL。
  • 似乎没有人在网上写过这个过程,考虑到 Scrapy 在我看来是一个可以插入 Django 应用程序的优秀框架,这很奇怪。
  • 在 Django 的文档上没有手动创建 Django 固定装置的明确指南 - 似乎它更倾向于从应用程序本身转储和重新加载固定装置。

实验性 DjangoItem 的存在表明 Scrapy + Django 是一个足够流行的选择,因为这里有一个很好的解决方案。

我将非常感谢有关此问题的任何解决方案、建议或智慧。

0 投票
3 回答
1454 浏览

django - 加载 Django 固定装置时未调用 model.save()?

我正在覆盖我的 Django 模型 save() 方法,因此我可以对对象进行一些额外的健全性检查。(save() 是正确的地方吗?)

我的 fixtures/initial_fixtures.yaml 对象似乎没有调用它们的 save() 方法。我怎样才能对我的固定装置进行健全性检查?

0 投票
2 回答
398 浏览

google-app-engine - 如何从夹具远程加载数据

在 GAE 上使用 Django-nonrel,我如何在部署后将夹具加载到服务器?我可以通过 locallay 做到这一点

python manage.py loaddata 夹具名称

但是,我怎样才能在 apppot.com 上已经部署的应用程序上做到这一点?

0 投票
2 回答
284 浏览

django - syncdb 未在 3rd 方项目中添加固定装置

我已经编写了一个非常简单的 Django 应用程序,名为django-locality,它可以让与国家和地区的工作无关。它为国家和地区提供了大量的初始数据。我只是 PyPI 的 0.1 版本,并将它安装在我目前正在处理的项目中。(我基本上是根据我在原始项目中发现的需要创建它的。)

但是,当我运行syncdb时,它并没有从locality. 在输出中,它打印了“No fixtures found”,并且没有向数据库添加任何行,尽管生成了表。Django 缺少我的初始数据有什么原因吗?locality/fixtures/initial_data.json如果从它自己的专用项目运行它,我的数据就可以保存并安装得很好。当我使用 setuptools 来管理依赖项时,如果我将其下载为压缩鸡蛋与简单的目录布局会有所不同吗?


最初,我的 JSON 似乎没有包含在鸡蛋中,这就是为什么syncdb不起作用。现在,我已经解决了这个问题,但仍然syncdb无法找到我的任何固定装置。您可以在这里下载彩蛋亲自查看。我想不出 Django 会丢失初始数据的任何原因。您还可以在 GitHub 上查看存储库。为什么 Django 看不到固定装置?


当我运行时syncdb -v 2,我确实看到 Django 看到了鸡蛋并寻找了固定装置:

有没有可能 Django 不知道如何读取鸡蛋?

0 投票
1 回答
233 浏览

django - Django 测试:如何获取只有夹具数据且没有 IntegrityErrors 的数据库(通过诊断错误源)?

我正在尝试使用夹具数据运行测试,并得到臭名昭著的IntegrityError: column user_id is not unique错误。

现在,查看我的灯具,我可以看到我的灯具中的用户模型的 id 彼此之间是唯一的。我推断冲突与(非测试)数据库中的现有数据发生冲突。这个对吗?(编辑:这似乎是不正确的 - 见下文)

我希望能够准确控制哪些数据可用于我的测试。有没有办法阻止 django testrunner 从我的实时数据库中加载数据,以及我的夹具数据?(编辑:是的 - 见 Thibaut 的回答)。

编辑:根据 Thibaut 的回答,切换到使用干净的内存数据库并不能解决问题。因此,我推断我现有的开发数据库不是问题。

所以,我有第三个问题:在测试期间加载夹具时如何诊断 IntegrityError 的原因?(而且,我该如何解决?)

编辑 2:我的问题的解决方案,除了从一个干净的数据库开始(根据 Thibault J)之外,还从安装的应用程序中删除引用用户的模型,直到错误不再发生。

DrTyrsa 的另一个建议(除了查看数据)是使用自然键,这对于 User 无疑需要一定数量的猴子补丁或其他黑客(编辑 User 的代码?)。

0 投票
1 回答
461 浏览

django - 在 django 中管理灯具的正确方法

今天我和我的同事讨论了我们应该如何在我们的 django 应用程序中管理固定装置。我们找不到任何能让每个人都满意的解决方案,所以我在这里问这个问题。

假设我们有一个相当大的 django 项目,里面有十几个应用程序,每个应用程序都有带有几个 TestClass 的 tests.py 文件。有了这个,我应该如何管理所有这些应用程序的测试数据?从我的角度来看,有两种不同的方法:

  1. 为每个应用程序test_data.json文件单独存储所有数据。该文件将包含应用程序的models.py文件中定义的所有模型的测试数据,无论该数据在哪里使用(它可以用于来自不同应用程序的测试)
  2. 将所有测试(如auth.users )可能需要的一些通用数据存储在 test_data.json 中,并将每个TestCase的数据存储在单独的test_case.json文件中。

从我的角度来看,第二种方法似乎更干净,但我想知道是否有人可以告诉我这些方法的具体利弊,或者可能会建议一些其他方法?

0 投票
1 回答
595 浏览

django - Django 的同步数据库在 auth_permission 表中插入重复的条目

我在 django 中创建了我的模型并运行manage.py syncdb

一切都很好,直到我在现有应用程序中添加了一个新模型。当我syncdb再次运行时,重复的条目被插入到auth_parmission表中。即使是来自“管理员”应用程序的条目日志。

我做了一个测试以删除新模型,删除数据库,创建一个空的并运行syncdb. 这从现有夹具加载了我的初始数据。

当我再次运行“syncdb”(不添加任何新模型)时,同样的事情发生了:重复的条目被插入到auth_permission表中。

对正在发生的事情以及如何避免那些重复的条目有任何解释吗?

谢谢

0 投票
1 回答
4342 浏览

django - Django 固定装置。JSON解码错误

我有一个 Django 项目,我想将测试数据添加到数据库中。当我像这样制作syncdb

表安装后我有一个错误

我的模型在这里:

我的夹具是这样的:

哪里有问题?

0 投票
1 回答
90 浏览

python - Django,带有固定装置的应用程序

我正在编写 Django 应用程序,它是一个基于 jQuery Grid 插件的管理界面。现在我想制作这个应用程序的演示并允许使用不同的数据进行实验,当然只是为了测试它。你们知道任何带有预定义装置的 django 应用程序吗?我找到了django-countries,它与国家列表一起使用。但我想找到更多。有什么建议么?提前致谢!