Fra*_*nck 4 django unit-testing fixtures django-fixtures
我在我的Django应用程序中使用了fixture,但只有两个应用程序正在加载他们的灯具.
当我用--verbosity = 2手动运行loaddata时,我可以看到它只在两个应用程序中查找,尽管我有更多内部创建的fixtures目录.
所有应用都已正确安装在settings.py中.
从文档中可以看出,Django应该在每个已安装应用程序的fixtures /目录中进行搜索.
为什么有些应用被忽略了?
每次执行syncdb时都会导入Initial_data.尽管我记得很公平,它还会覆盖您手动完成的任何更改.
要加载其他灯具,您必须使用manage.py loaddata fixturename.如果您在所有应用程序中使用通用命名方案,那么这种方法很有效.如果不这样做,则必须为loaddata指定每个名称,或者使用find获取每个中的fixture和exec loaddata列表:
编辑:(当我在virtualenv中添加manage.py到/ bin时,我安装django包我只使用manage.py,如果你不这样做,你当然需要python manage.py loaddata)
find . -name "*.json" -exec manage.py loaddata {} \;
Run Code Online (Sandbox Code Playgroud)
我在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 )
Run Code Online (Sandbox Code Playgroud)
您必须将夹具数据放置在initial_data.[json|xml,...] 文件中。
我认为默认情况下只加载这些文件。
appdir/fixtures/initial_data.json
| 归档时间: |
|
| 查看次数: |
4357 次 |
| 最近记录: |