Не удается изменить тип поля модели в Django - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть модель ReservationSupplement :

class ReservationSupplement(models.Model):
    reservation_hotel = models.ForeignKey(ReservationHotel, on_delete=models.CASCADE, related_name='supplements', verbose_name=_("Hotel Supplements"))
    supplement = models.CharField(max_length=10)

И я хочу изменить его на:

class ReservationSupplement(models.Model):
    reservation_hotel = models.ForeignKey(ReservationHotel, on_delete=models.CASCADE, related_name='supplements', verbose_name=_("Hotel Supplements"))
    supplement = models.ForeignKey('RatesManagerApp.Product', on_delete=models.PROTECT, related_name='reservations', verbose_name=_("Supplement"))

У меня не было проблем с makemigrations, но когда я запускаю migrate, я получаю эту ошибку: django.db.utils.ProgrammingError: column "supplement" does not exist.

Я не знаю, чем это вызвано, потому что при трассировке мне выдаются только модули Django, и я не знаю, что вызывает ошибку.

1 Ответ

0 голосов
/ 04 ноября 2018

Вещи для проверки:

  1. Сначала скопируйте все важные данные, затем удалите папку миграции внутри этого приложения.

  2. Если вы намереваетесь использовать путь app_name с моделью в ваших ForeignKey, , это должно быть похоже на 'app_name.ModelName'. Поэтому убедитесь, что ваше app_name имеет надлежащую чувствительность к регистру, если вы хотите использовать его таким образом (хотя вы должны сделать его все строчными, кроме Product, потому что способ, которым вы его используете, делает его похожим на модель внутри Модель, которая возможна, следовательно, ForeignKey, но не является хорошим соглашением при указании путей) .

...