如何创建夹具文件

时间:2011-05-27 13:46:56

标签: django fixtures

我想在我的Django项目中创建一个fixture文件。

我该怎么做?

6 个答案:

答案 0 :(得分:48)

阅读“Providing initial data for models”。

  1. 将一些数据加载到Django管理的数据库中。简单的Python脚本可以很好地工作,或者使用默认的管理界面。
  2. 使用manage.py dumpdata将数据转储到JSON fixture文件中。阅读“django-admin.py and manage.py”。

答案 1 :(得分:16)

您必须在app中创建一个名为fixtures的目录,并将fixtures文件放在那里。

您可以用json或xml编写它们,一种简单的方法是在管理界面中创建一些对象,然后运行manage.py dumpdata。这会将您创建的对象中的数据转储到fixture文件中。之后,您只需编辑这些文件以满足您的需求。

https://docs.djangoproject.com/en/1.7/ref/django-admin/#dumpdata-app-label-app-label-app-label-model

如果您想加载灯具,请使用manage.py loaddata。

https://docs.djangoproject.com/en/1.7/ref/django-admin/#loaddata-fixture-fixture

您可以使用在运行syncdb时自动加载的初始数据的夹具,只需创建一个名为initial_data的文件,Django就会识别它。

https://docs.djangoproject.com/en/1.7/howto/initial-data/#automatically-loading-initial-data-fixtures

要将灯具用于测试目的,您必须在测试类中声明它们

https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading

答案 2 :(得分:8)

我降落在这里寻找如何做装置。我发现以下文章是最简单的。

https://code.djangoproject.com/wiki/Fixtures

FIXTURE_DIRS路径添加到您的应用settings.py

import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
FIXTURE_DIRS = (
   os.path.join(PROJECT_DIR, 'fixtures'),
)

现在将当前的myapp状态转储到JSON文件中。

python manage.py dumpdata --format=json myapp > myapp/fixtures/initial_data.json

多数民众赞成,是时候测试了。删除myapp表格......

./manage.py sqlclear myapp | ./manage.py dbshell

现在重新加载灯具......

./manage.py syncdb 

答案 3 :(得分:8)

转储数据:

python manage.py dumpdata app.model_name --indent 4 > fixtures/file_name.json

加载数据:

python manage.py loaddata fixtures/model_name.json --app app.model_name

- 缩进X是可选的。

答案 4 :(得分:2)

我正在编写一个django模块(django-generate_fixtures)来生成一个聪明的灯具,跟随一个父对象的每个相关模型。

它现在将数据转储为JSON,然后您可以像加载任何其他灯具一样加载它。

答案 5 :(得分:2)

如果要转储整个站点,则无需在设置中指定灯具目录,可以在项目中制作灯具目录并运行此

python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json