我有一个模型 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模块,却不知道导致错误发生的原因。
答案 0 :(得分:0)
要检查的内容:
首先复制任何重要数据,然后删除该应用程序内的迁移文件夹。
如果您打算在ForeignKey
,中的模型中使用app_name路径,则它必须类似于'app_name.ModelName'
。因此,如果要像这样使用它,请确保您的app_name具有适当的大小写敏感性(尽管您应该将{_1}之外的所有小写字母都使用小写字母,因为您拥有它的方式使其看起来像一个Model)在模型中,因此可能是Product
,但在指定路径时不是很好的约定)。