姜戈奥斯卡:删除代金券不要删除关联的"ConditionalOffer"



我遇到了一个问题,Django-Oscar wile 试图玩优惠和优惠券。当我删除凭证时,相关实体条件报价不会被删除并保留在数据库中。

因此,当我尝试添加另一个与我刚刚删除的代码相同的凭证时,我得到了一个漂亮的 IntegrityErrorduplicate key value violates unique constraint "offer_conditionaloffer_name_key"

我正在使用django-oscar(2.0.1(和PostgreSQL(11(和psycopg2(2.8.3(。

下面是错误的屏幕截图和另一个条件报价表,其中条目(10off 和 20off(保留在那里。

这是正常行为还是错误?如果这是正常的,我该如何使用与已删除的旧代码相同的代码创建凭证?

这是正常(如果有些不受欢迎(的行为 - 奥斯卡不会清理使用代金券创建的优惠。这样做的原因是,就模型而言,产品/服务可以与任意数量的优惠券相关联 - 因此它不会假设删除优惠券时不再需要产品/服务。

可能有一种观点认为,如果通过仪表板为优惠券创建产品/服务,并且共享相同的名称,则应在优惠券时将其删除 - 但这当前尚未实现。

现在,您需要从 Django 管理员或 shell 中删除孤立的报价。

最新更新