Django migrate primary OneToOneFiled ForeignKey + в составной внешний ключ

У меня есть модель, которая является просто отношением между двумя сущностями, как это:

class SomeModel(models.Model):
    a = OneToOneField(User,primary_key=True,...)
    b = ForeignKey(Car,...)

В соответствии с дизайном, это было правильно, так как я не хотел, чтобы User имел несколько Car. Но в моем новом проекте я хочу, чтобы у Car было несколько User. Поэтому я пытался сделать что-то вроде этого:

class SomeModel(models.Model):
    class Meta:
        unique_together = (("a", "b"),)
    a = ForeignKey(User,...)
    b = ForeignKey(Car,...)

Но во время миграции он спрашивает меня:

You are trying to add a non-nullable field 'id' to somenmodel without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit, and let me add a default in models.py
Select an option:

Я просто хотел удалить этот внешний ключ из OneToOneRelation и добавить новый id, объединяющий оба. - Как это решить?

Удалите модель и таблицу из базы данных и создайте новую модель с самого начала или добавьте null=True к заданному полю. У вас, должно быть, есть некоторые данные (строки) в вашей таблице, и теперь вы создаете новый столбец, поэтому предыдущие строки должны быть чем-то заполнены во вновь созданном столбце, запись null = True сделает это.

Вернуться на верх