【问题标题】:Django 2: Migration with data that doesn’t exist in another appDjango 2:使用其他应用程序中不存在的数据进行迁移
【发布时间】:2018-04-10 16:40:32
【问题描述】:

我正在尝试创建一个新表并使用其他表中当前不存在的初始值加载它。我发现的所有迁移信息都是从现有模型中提取到新模型中。我想将新信息放入新模型中。例如:

如果我想要一个“国家模型”和一个带有该国家外键的“国家模型”,我如何创建一个包含该国家/地区的所有州的“国家(美国)”?

然后,如果我稍后在与“US”相同的文件中创建所有地区的“Country(Canada)”,它会只添加“Canada”还是会复制所有“US”信息。

抱歉,格式错误。我目前正在 iPhone 上打字,但还没有弄清楚格式。

【问题讨论】:

    标签: django django-models django-migrations


    【解决方案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)))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 2020-03-21
    • 2018-10-19
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2013-10-16
    相关资源
    最近更新 更多