我在apps/hello
处有应用程序的Python Django项目,以及/apps/hello/fixtures/initial_data.json
处的初始数据夹具
当我从github git clone
我的Python Django项目时,checkout
需要分支并运行
./manage.py syncdb
它创建没有内容的空表i。即不会从我的initial_data
装置加载数据。 Django要求我注册一个已经在fixture中注册的超级用户。
Operations to perform:
Apply all migrations: admin, contenttypes, hello, auth, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying hello.0001_initial... OK
Applying hello.0002_auto_20141217_1326... OK
Applying hello.0003_auto_20141217_1329... OK
Applying sessions.0001_initial... OK
You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): no
但是我可以手动加载数据
./manage.py loaddata apps/hello/fixtures/initial_data.json
Installed 12 object(s) from 1 fixture(s)
如何让Django在syncdb上自动执行相同的操作?
答案 0 :(得分:3)
如果您使用的是Django 1.7或更高版本,您可能应该知道automatic loading of fixtures has been deprecated:
如果应用程序使用迁移,则不会自动加载灯具。由于Django 2.0中的应用程序将需要迁移,因此不推荐使用此行为。如果要加载应用程序的初始数据,请考虑在数据迁移中执行此操作。
如果您正在使用新的内置迁移,则无法自动加载灯具。
答案 1 :(得分:1)
我遇到了同样的问题,我通过在settings.py
中添加几行解决了这个问题FIXTURE_DIRS = (
os.path.join(BASE_DIR, 'hello/fixtures'),
)