【发布时间】:2022-12-22 21:48:42
【问题描述】:
我有一个模型Voucher,可以分配给多个users。
我为此使用了M2M关系。
我希望在模板中删除分配给登录用户的凭证,并且仅登录用户(不是所有关系)。
我遇到的问题是当前模型为所有用户删除了整个模型,而不是单个用户请求“删除”。
另一种选择显然是简单地在 ForeignKey 上创建一个模型 Voucher,但有些事情告诉我我可能可以在视图中使用 M2M 来做到这一点。
有没有办法让我的删除功能针对特定用户?在下面的示例中,我尝试基于 user.request 进行过滤,但它不起作用。查看模型中的数据,列出了用户 ID。这不是request.user 做的吗?
楷模
class Voucher(models.Model):
user = models.ManyToManyField(User, blank=True)
观点
def delete_voucher(request, voucher_id):
voucher = Voucher.objects.filter(pk=voucher_id).filter(user=request.user)
voucher.delete()
return redirect('account')
模板
<a class="button3 btn-block mybtn tx-tfm" href="{% url 'delete-voucher' voucher.id %}">Delete</a>
网址
path('delete_voucher/<voucher_id>', views.delete_voucher, name='delete-voucher'),
【问题讨论】:
标签: python django django-models django-views