关于initial_data
数据,你没有太多的选择。然而,我一直觉得这些数据的实用性不是很好。很少有人希望在每次调用syncdb
或migrate
时都应用相同的数据。
如果你使用了其他名称的数据,你可以通过将以下内容添加到正向迁移中(来自South文档)轻松地使其与迁移一起运行。
from django.core.management import call_command
call_command("loaddata", "my_fixture.json")
因此,你需要一些方法只在某些环境下执行。对于开发环境而言,最简单的方法就是依赖于DEBUG
。因此,之前的代码变成了:
from django.conf import settings
from django.core.management import call_command
if settings.DEBUG:
call_command("loaddata", "dev_fixture.json")
如果您需要更大的控制权,您可以创建某种设置,在每个
local_settings.py
中都不同(或者根据环境自定义设置的任何方法),例如:
ENV = 'staging'
from django.conf import settings
from django.core.management import call_command
if settings.ENV == 'staging':
call_command("loaddata", "staging_fixture.json")