Джанго меняет существующее поле на внешний ключPython

Программы на Python
Anonymous
Джанго меняет существующее поле на внешний ключ

Сообщение Anonymous »

У меня есть модель Django, которая раньше выглядела так:

Код: Выделить всё

class Car(models.Model):
manufacturer_id = models.IntegerField()
Существует еще одна модель под названием «Производитель», к которой относится поле id. Однако я понял, что было бы полезно использовать встроенную в Django функциональность внешнего ключа, поэтому изменил модель на такую:

Код: Выделить всё

class Car(models.Model):
manufacturer = models.ForeignKey(Manufacturer)
Похоже, что это изменение сразу работает нормально, запросы работают без ошибок, но когда я пытаюсь запустить миграцию, Django выводит следующее:

Код: Выделить всё

- Remove field manufacturer_id from car
- Add field manufacturer to car
Выполнение этой миграции очистит все существующие связи в базе данных, поэтому я не хочу этого делать. На самом деле мне вообще не нужны какие-либо миграции, поскольку такие запросы, как Car.objects.get(manufacturer__name="Toyota"), работают нормально. Мне бы хотелось иметь правильное ограничение внешнего ключа базы данных, но это не является приоритетом.
Поэтому мой вопрос таков: есть ли способ выполнить миграцию или что-то еще, что позволит мне преобразовать существующее поле для внешнего ключа? Я не могу использовать --fake, так как мне нужно надежно работать на компьютерах разработчиков, разработчиков и моих коллег.

Подробнее здесь: https://stackoverflow.com/questions/668 ... oreign-key

Вернуться в «Python»