我在 Django 应用程序中使用固定装置,但只有两个应用程序加载了固定装置。
当我使用 --verbosity=2 手动运行 loaddata 时,我可以看到它只在两个应用程序中查找,尽管我在内部创建了更多的固定装置目录。
所有应用程序均已正确安装在 settings.py 中。
从文档看来,Django 应该在每个已安装应用程序的 Fixtures/ 目录中进行搜索。
知道为什么有些应用程序被忽略吗?
每次执行syncdb 时都会导入Initial_data。据我所知,它还会覆盖您手动完成的任何更改。
要加载其他装置,您必须使用manage.pyloaddata https://docs.djangoproject.com/en/dev/ref/django-admin/?from=olddocs#loaddata-fixture-fixture夹具名称。
如果您在所有应用程序中使用通用的命名方案,那么效果会很好。
如果不这样做,则必须为 loaddata 提供每个数据的名称,或者使用 find 来获取
灯具列表以及其中每一个中的 exec loaddata:
编辑:(当我安装 django 包时,我将manage.py添加到virtualenv中的/bin中,我只使用manage.py,如果你不这样做,当然你将需要python manage.py loaddata)
find . -name "*.json" -exec manage.py loaddata {} \;
我在 fabfile 中使用它来自动进行临时安装:
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 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)