未正确读取FIXTURE_DIRS,安装了0个对象来自0个fixture

1 投票
1 回答
1086 浏览
提问于 2025-04-18 18:17

这是我的设置

FIXTURE_DIRS = (
      os.path.join(BASE_DIR, "fixtures",)
)

$ python manage.py diffsettings | grep fixtures
FIXTURE_DIRS = '/home/user/project/src/fixtures'

奇怪的是,当我运行syncdb的时候,出现了以下情况。它会递归地加载在FIXTURE_DIRS中设置的每一个字符的路径。可是它找不到任何目录,因为这些目录根本就不存在。

$ python manage.py syncdb -v3  
project.settings  
project/src  
Running pre-sync handlers for application admin  
Running pre-sync handlers for application auth  
Running pre-sync handlers for application contenttypes  
Running pre-sync handlers for application sessions  
Running pre-sync handlers for application messages  
Running pre-sync handlers for application staticfiles  
Running pre-sync handlers for application admindocs  
Running pre-sync handlers for application webdesign  
Running pre-sync handlers for application helloworld  
Creating tables ...  
Running post-sync handlers for application admin  
Running post-sync handlers for application auth  
Running post-sync handlers for application contenttypes  
Running post-sync handlers for application sessions  
Running post-sync handlers for application messages  
Running post-sync handlers for application staticfiles  
Running post-sync handlers for application admindocs  
Running post-sync handlers for application webdesign  
Running post-sync handlers for application helloworld  
Installing custom SQL ...  
Installing indexes ...  
Checking '/' for fixtures...  
No fixture 'initial_data' in '/'.  
Checking 'project/src/h' for fixtures...  
No fixture 'initial_data' in 'project/src/h'.  
Checking 'project/src/o' for fixtures...  
No fixture 'initial_data' in 'project/src/o'.  
Checking 'project/src/m' for fixtures...  
No fixture 'initial_data' in 'project/src/m'.  
Checking 'project/src/e' for fixtures...  
No fixture 'initial_data' in 'project/src/e'.  
Checking '/' for fixtures...  
No fixture 'initial_data' in '/'.  
Checking 'project/src/u' for fixtures...  
No fixture 'initial_data' in 'project/src/u'.  
Checking 'project/src/s' for fixtures...  
No fixture 'initial_data' in 'project/src/s'.  
Checking 'project/src/e' for fixtures...  
No fixture 'initial_data' in 'project/src/e'.  
Checking 'project/src/r' for fixtures...  
No fixture 'initial_data' in 'project/src/r'.    
Checking '/' for fixtures...  
No fixture 'initial_data' in '/'.  
Checking 'project/src/p' for fixtures...  
No fixture 'initial_data' in 'project/src/p'.  
Checking 'project/src/r' for fixtures...  
No fixture 'initial_data' in 'project/src/r'.  
Checking 'project/src/o' for fixtures...  
No fixture 'initial_data' in 'project/src/o'.  
Checking 'project/src/j' for fixtures...  
No fixture 'initial_data' in 'project/src/j'.  
Checking 'project/src/e' for fixtures...  
No fixture 'initial_data' in 'project/src/e'.  
Checking 'project/src/c' for fixtures...  
No fixture 'initial_data' in 'project/src/c'.  
Checking 'project/src/t' for fixtures...  
No fixture 'initial_data' in 'project/src/t'.  
Checking '/' for fixtures...  
No fixture 'initial_data' in '/'.  
Checking 'project/src/s' for fixtures...  
No fixture 'initial_data' in 'project/src/s'.  
Checking 'project/src/r' for fixtures...  
No fixture 'initial_data' in 'project/src/r'.  
Checking 'project/src/c' for fixtures...  
No fixture 'initial_data' in 'project/src/c'.  
Checking '/' for fixtures...  
No fixture 'initial_data' in '/'.  
Checking 'project/src/f' for fixtures...  
No fixture 'initial_data' in 'project/src/f'.  
Checking 'project/src/i' for fixtures...  
No fixture 'initial_data' in 'project/src/i'.  
Checking 'project/src/x' for fixtures...  
No fixture 'initial_data' in 'project/src/x'.  
Checking 'project/src/t' for fixtures...  
No fixture 'initial_data' in 'project/src/t'.  
Checking 'project/src/u' for fixtures...  
No fixture 'initial_data' in 'project/src/u'.  
Checking 'project/src/r' for fixtures...  
No fixture 'initial_data' in 'project/src/r'.  
Checking 'project/src/e' for fixtures...  
No fixture 'initial_data' in 'project/src/e'.  
Checking 'project/src/s' for fixtures...  
No fixture 'initial_data' in 'project/src/s'.  
Checking 'project/src' for fixtures...  
No fixture 'initial_data' in 'project/src'.  
Installed 0 object(s) from 0 fixture(s)  

1 个回答

3

这个问题解决了,但我仔细检查了一下我的设置。

FIXTURE_DIRS = (
      os.path.join(BASE_DIR, "fixtures",)
)

应该是这样的:

FIXTURE_DIRS = (
      os.path.join(BASE_DIR, "fixtures",),
)

如果你看不出有什么不同,我在花了几个小时试图弄明白的时候也看不出来。唯一的区别就是一个 ,。看看 os.path.join(BASE_DIR, "fixtures",) 的末尾,现在多了一个 ,

我预计将来会有其他人遇到这个问题。 所以我提供了这个答案。

撰写回答