Default permission/group data in Django

2019-07-13 04:15发布

问题:

Every time I wipe the database of my Django app during testing (or when cloning or deployin), I have to go into /admin and set up permissions and groups. Where would I put the code that would populate the DB with them and what would it look like?

回答1:

For this you can use fixtures.

For example:

python manage.py dumpdata auth > fixtures/auth.json

This will store all models of package 'auth' (Users, Groups Relations) into auth.json After Deployment you can use the following command to load:

python manage.py loaddata auth fixtures/auth.json

This will restore your prev state of 'auth'.

Maybe it's good for you to switch to South, a very famous part of Django to migrate databases instead of recreating them.



回答2:

You can provide fixtures with the initial required data and it will be automatically inserted when you syncdb. See docs