【发布时间】:2021-09-04 09:02:53
【问题描述】:
我有两个模型:
class Product(models.Model):
product_model = models.CharField(max_length=255, default='')
...
class Discount(models.Model):
name = models.CharField(max_length=255, default='')
items = models.ManyToManyField(Product, blank=True)
discount_percent = models.IntegerField(default=0,
validators=[
MaxValueValidator(100),
MinValueValidator(1),
]
)
我想从项目中删除特定项目(ManyToManyField)
我的看法:
def delete_from_discount(request, id, product_url):
if request.user.is_staff or request.user.is_superuser:
a = Product(product_url=product_url)
b = Discount(id=id)
b = b.items.remove(a)
return redirect("/staff/discount/"+id)
else:
return redirect('/staff')
没有错误,但我的模型也没有任何变化,没有删除 我的html:
{% for dis in discount.items.all %}
<a href="/staff/discount/delete-from-discount/{{discount.id}}/{{dis.product_url}}/">delet</a>
{% endfor %}
【问题讨论】:
-
您的产品需要一个主键。我也不清楚你为什么使用
b = b.items...。 -
@WillemVanOnsem 我用 pk 成功了,谢谢
标签: django django-models django-views many-to-many