我正在尝试创建一个新表,并使用当前不存在于另一个表中的初始值加载它。我发现的所有迁移信息都是从现有模型中提取到新模型中。我想在新模型中添加新信息。例如:
如果我想要一个“国家模式”和一个带有国外外键的“国家模式”,我如何与该国家/地区的所有州建立“国家(美国)”?
然后,如果我稍后创建“国家(加拿大)”,其中包含与“US”相同的文件中的所有地区,它是否只会添加“加拿大”,还是会复制所有“美国”信息。
抱歉格式不好。我目前正在我的iPhone上打字并且没有弄清楚格式化。
答案 0 :(得分:1)
您可以编写管理命令并通过manage.py调用初始化数据库吗?像
这样的东西from django.core.management.base import BaseCommand, CommandError
from .models.places import State, City
states = [
['Alabama','AL'],
['Alaska','AK'], ...
]
cities = [
['New York', 'New York'],
['Los Angeles', 'California'],
['Chicago','Illinois'], ...
]
class Command(BaseCommand):
help = 'Populates the database with startup data'
def handle(self, *args, **options):
for s in states:
state, created = State.objects.get_or_create(state=s[0],state_code=s[1])
state.save()
self.stdout.write(self.style.SUCCESS('State "%s" created' % (state)))
for c in cities:
state = State.objects.get(state=c[1])
city, created = City.objects.get_or_create(city=c[0],state=state)
city.save()
self.stdout.write(self.style.SUCCESS('City "%s" created' % (city)))