我想在django-oscar中的订单应用程序的ShippingEventQuantity模型中添加一个字段。但是这个模型不是抽象的,因此我正在努力寻找一种方法来覆盖它。
我尝试了以下方法来尝试覆盖此模型。使用下面的代码,当我运行makemigrations命令时,我得到了错误:
class SShippingEventQuantity(ShippingEventQuantity):
replacement = models.CharField(null=True, blank=True, max_length=255)
class Meta:
app_label = 'order'
verbose_name = _("Shipping Event Quantity")
verbose_name_plural = _("Shipping Event Quantities")
unique_together = ('event', 'line', 'replacement')
Errors:
order.SShippingEventQuantity: (models.E016) 'unique_together' refers to field 'event' which is not local to model 'SShippingEventQuantity'.
HINT: This issue may be caused by multi-table inheritance.
order.SShippingEventQuantity: (models.E016) 'unique_together' refers to field 'line' which is not local to model 'SShippingEventQuantity'.
HINT: This issue may be caused by multi-table inheritance.我做错了什么?我能做些什么来解决这个问题呢?
发布于 2019-08-06 15:25:36
不幸的是,你不能。虽然奥斯卡试图变得灵活,但并不是所有的东西都是可重写的。
正如您所提到的,order.abstract_models.ShippingEventQuantity不是一个抽象模型,所以Oscar不支持通过通常的方式覆盖它,这可能是因为它被用作直通模型。
我建议你问一个关于如何最好地实现你的最终目标的新问题,通常有多种方法来改变奥斯卡的行为。
https://stackoverflow.com/questions/57370104
复制相似问题