Version 2 (modified by 17 years ago) ( diff ) | ,
---|
Fixtures
It is very simple example, please, read something more complex if you need.
Fixtures are very powerful to play with your database sample data during development process. After each python manage.py reset <myapp> command you need to populate database with sample data again and again using admin interface. It's quite boring, isn't it? With fixtures our life became more comfortable and easy. Look at this example. Lets imagine that you have some data in db, so we can dump it. Even if your models have ForeignKeys or any kind of *To* relations.
First we need to define fixtures dir in settings file:
FIXTURE_DIRS = ( '/path/to/myapp/fixtures/', )
Lets dump our data:
cd /path/to/myapp/fixtures python manage.py dumpdata --format=json myapp > initial_data.json
Reset:
python manage.py reset myapp You have requested a database reset. This will IRREVERSIBLY DESTROY any data for the "myapp" application in the database "mydb". Are you sure you want to do this? Type 'yes' to continue, or 'no' to cancel: yes
Now we have clean DB, lets populate it with our sample data:
python manage.py syncdb Loading 'initial_data' fixtures... Installing json fixture 'initial_data' from '/path/to/myapp/fixtures/'. Installed 24 object(s) from 1 fixture(s)
Links: http://en.wikipedia.org/wiki/JSON http://www.djangoproject.com/documentation/models/fixtures/ http://www.djangoproject.com/documentation/testing/#fixtures