我正在显示一张桌子。每行都应该有一个删除按钮,用于从表中删除元素。
我的问题是,我不确定如何将元素的 id 传递给视图。
html:
{% for post in posts %}
<div>
<h3>Zuletzt ausgewählt:</h3>
<p>published: <b>{{ post.pub_date }}</b>
</p>
<p>
name: <b>{{ post.Name }}</b>
anmeldung: <b>{{ post.get_Anmeldung_display }}</b>
essen: <b>{{ post.get_Essen_display }}</b>
<form action="" method="POST">
{% csrf_token %}
<input class="btn btn-default btn-danger" name="delete" type="submit" value="Löschen"/>
</form>
</p>
<p>
Email: <b>{{ post.Email }}</b>
</p>
</div>
{% endfor %}
views.py
if request.method == 'POST' and 'delete' in request.POST:
Eintrag.objects.filter(pk=id).delete()
return HttpResponseRedirect(request.path)
所以我需要将每个帖子的 post.pub_date 传递给视图,我怎样才能做到这一点?
我的问题是,我不确定如何将元素的 id 传递给视图。
我可以想到两种方法来做到这一点。我将一一介绍它们。
1.在您的应用程序中创建一个单独的 url 路由,专门用于删除对象:
('/post/<pk>/delete/', name="delete_post"),
然后指向您的表单action
到这个网址:
<form action="{% url 'delete_post' post.pk %}" method="POST">
...
最后,修改您的视图函数以接受pk
争论:
def my_view(request, pk):
...
2.第二种方法是在表单中创建另一个字段并向其传递对象的 pk:
只需在表单中创建另一个字段即可。
<form action="" method="POST">
<input type="hidden" value="{{ post.pk }}" name="pk">
...
然后在你看来只要看看request.POST['pk']
获得帖子的pk。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)