我有一个基于类的视图的匹配项列表:
class MatchListView(LoginRequiredMixin, generic.ListView)
在模板中,我有一排带有匹配项列表的行,在一列中有一个按钮。我想做的是,当我单击此按钮时,将调用另一个功能/视图,该功能/视图带有该匹配ID和用户,然后将其保存到数据库并返回到列表。
我已经做了类似的事情:
模板
<td><a href="{% url 'match_register_request' match.id %}" class="btn btn-info btn-sm">Zgłoś się na mecz</a></td>
URL
path('match_register_request/<int:pk>', views.MatchRegisterViewRegister.as_view(), name='match_register_request')
和视图:
class MatchRegisterViewRegister(LoginRequiredMixin, generic.View):
def post(self, request, object_id, *args, **kwargs):
# Add record to DB
mr = MatchRegister(match=object_id, ref_reg=self.request.user)
mr.save()
return redirect('matches_list')
但是它不起作用。它使用id,重定向到URL“ matches_register_request / {ID}”,但不执行任何操作。
您能帮我完成这项工作吗?
答案 0 :(得分:2)
您需要向此终结点而不是POST
发出GET
请求。最简单的方法是使用表格,例如:
<td>
<form action="{% url 'match_register_request' match.id %}" method="post">
{% csrf_token %}
<button class="btn btn-info btn-sm">Zgłoś się na mecz</button>
<form>
</td>