我想在我的Django项目中创建一个fixture文件。
我该如何操作?
python manage.py dumpdata app.model_name --indent 4 > fixtures/model_name.json
python manage.py loaddata fixtures/model_name.json --app app.model_name
--缩进X是可选的。
请阅读“为模型提供初始数据”。
manage.py dumpdata
将数据转储到JSON fixture文件中。请参阅“django-admin.py和manage.py”。你需要在应用程序中创建一个名为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
如果你想要加载fixtures文件,可以使用 manage.py loaddata 命令。
https://docs.djangoproject.com/en/1.7/ref/django-admin/#loaddata-fixture-fixture
你可以拥有带有初始数据的fixtures文件,当你运行 syncdb 时它们会自动加载,只需要创建一个名为initial_data的文件,Django就会识别它。
要将fixtures文件用于测试目的,你必须在你的测试类中声明它们。
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading
我来到这里是为了了解如何进行固定装置,我发现以下文章是最容易理解的。
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
python -mjson.tool
命令来美化输出结果 - python manage.py dumpdata myapp.mymodel | python -mjson.tool > mymodel.json
。 - Rebsdumpdata
命令时,出现了错误。为什么会出现“未绑定的方法contribute_to_class()必须使用TextField实例作为第一个参数(而不是ModelBase实例)”的错误提示? - Hussainpython manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json
我目前正在编写一个Django模块(django-generate_fixtures),用于生成智能夹具,跟随一个父对象的每个相关模型。
它目前将数据转储为JSON,然后您可以像加载任何其他夹具一样加载它。