Я хочу создать файл fixture в моем проекте Django.
Как я могу это сделать?
Я хочу создать файл fixture в моем проекте Django.
Как я могу это сделать?
Прочтите " Предоставление исходных данных для моделей ".
manage.py dumpdata
для manage.py dumpdata
данных в файл manage.py dumpdata
JSON. Прочитайте " django-admin.py и manage.py ".Вы должны создать каталог в своем приложении с именем fixtures и поместить там свои файлы.
Вы можете записать их в json или xml, один простой способ сделать это - создать некоторые объекты в интерфейсе администратора, а затем запустить dumpdata для manage.py. Это позволит выгрузить данные из созданных вами объектов в файлы привязки. После этого вы можете просто отредактировать эти файлы в соответствии с вашими потребностями.
https://docs.djangoproject.com/en/1.7/ref/django-admin/#dumpdata-app-label-app-label-app-label-model
Если вы хотите загрузить приборы, вы используете load.tata.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/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 manage.py dumpdata app.model_name --indent 4 > fixtures/file_name.json
python manage.py loaddata fixtures/model_name.json --app app.model_name
--indent X не является обязательным.
В настоящее время я пишу модуль django (django-generate_fixtures), чтобы генерировать умные приборы, следуя всем связанным моделям одного родительского объекта.
Теперь он выгружает данные как JSON, затем вы можете загружать их так же, как и любые другие светильники.
Если вы хотите сбросить весь сайт, вам не нужно указывать каталог настроек в настройках, вы можете сделать dir файл в вашем проекте и запустить этот
python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json