Как интегрировать страны Джанго в существующую модель

У меня есть существующий класс стран в производственной базе данных, но я хотел бы использовать модель Django_Countries для обновления всех стран, которые я использую.

Вот существующая модель. Это позволяет пользователям создавать страну и загружать флаг своей страны

class Country(models.Model):
    name = models.CharField(_("Name"))
    icon = models.ImageField(_("Icon"),upload_to=os.path.join('images', 'flags'))

Я хочу удалить опцию пользователя, создающего страну, и просто выбрать страну.

Я не могу реально изменить существующую модель, так как от нее много зависимостей. Я просто хочу добавить имя и флаг к существующей модели.

1 ответ

В итоге я просто сделал дамп стран в файл json и написал миграцию для обновления базы данных.

def forwards(apps, schema_editor):
    Country = apps.get_model('country', 'Country')
    Region = apps.get_model('country', 'Region')

    Region.objects.filter(id=45).delete()

    with codecs.open(os.path.join(os.path.dirname(__file__), 'countries.json'), encoding='utf-8') as cfile:
    data = json.load(cfile)

    for country, regions in data.items():
        country, created = Country.objects.get_or_create(name=country)


class Migration(migrations.Migration):
    dependencies = [
    ('country', 'previous_migration'),
]

operations = [
    migrations.RunPython(forwards),
]
Другие вопросы по тегам