У меня есть модель:
class Foo(models.Model):
pass
Я хочу добавить к нему атрибут типа. Есть фиксированное количество типов. Все существующие должны иметь тип по умолчанию. Поэтому я добавляю тип:
class Type(models.Model):
name = models.CharField(max_length=100)
И типы исходных данных:
- model: app.Type
pk: 1
fields:
name: "default"
- model: app.Type
pk: 2
fields:
name: "special"
И изменить Foo
:
class Foo(models.Model):
type = models.ForeignKey(Type, default=1)
schemamigration
работает нормально. Однако migrate
завершается ошибкой, поскольку app.Type
s еще не в базе данных, поэтому по умолчанию 1 не существует.
Как мне решить эту проблему чисто, элегантно? Я мог бы сначала вставить Type
, перенести это, а затем изменить Foo
и перенести это, но кажется, что это будет работать только на локальном сайте (так как при переносе на другой сайт он будет делать все в любом случае сразу).