Initial_data gets imported each time you do syncdb. As fair as I remember, it also overwrites any changes you have done manually.
To load other fixtures, you have to use manage.py loaddata fixturename.
That works well if you have you use a common naming scheme in all your apps.
If you don't, you have to give loaddata the name of each one, or use find to get
the list of fixtures and exec loaddata in each one of them:
EDIT: (as I add manage.py to /bin in the virtualenv when I install the django package I only use manage.py, if you don't you will need python manage.py loaddata of course)
find . -name "*.json" -exec manage.py loaddata {} \;
I use this in a fabfile to automate staging installations:
def load_all_fixtures():
"""Loads all the fixtures in every dir"""
with cd(env.directory):
run("""
source /usr/local/bin/virtualenvwrapper.sh &&
workon %s &&
find -L . -name "*.json" -exec manage.py loaddata {} \;
""" % env.virtualenv )
python manage.py loaddata sample_content.json -v 2
shows that the loaddata command doesn't look at a few of my installed apps. – Unkempt