我有一个django项目,结构如下:
/djninja # project dir
/djninja # main app dir
/bands # app dir
/fans # app dir
/lyrics # app dir
我已经创建了一个initial_data.yaml
文件来制作syncdb
加载fixture(我更喜欢YAML格式)。根据documentation,我将把它放在任何appfixtures
子目录中。所以我做了,我有:
但是syncdb忽略了这个文件。然后我把它移到主项目目录中:
/djninja
/djninja
/fixtures
- initial_data.yaml
/bands
/fans
/lyrics
但它仍然被忽略了。我想在syncdb
命令中加载fixture我做错了什么?在
只要:
fixtures
目录中,INSTALLED_APPS
(在settings.py
)中列出的应用程序之一所以,考虑到你有皮亚姆,可能是后者。请确保您的
fixtures
目录位于INSTALLED_APPS
中列出的某个应用中,并且您应该已经启动并运行。在对于这种布局:
将}上。在
bands
添加到INSTALLED_APPS
应该可以做到,因为bands
是一个有效的包,并且位于{如果希望Django在其他目录中查找fixture,可以按照"Where Django finds fixture files" subsection of the docs中给出的建议,使用
FIXTURE_DIRS
设置,使其成为要查找的额外目录的列表。在显然,Django在
INSTALLED_APPS
中指定的应用程序中查找包含models.py
的fixture。在因此,如果你的应用程序缺少一个,创建一个空的
models.py
,Django不会跳过在该应用程序中查找fixture的操作。在相关问题 更多 >
编程相关推荐