gpt4 book ai didi

django - 在django中删除带有表单的对象

转载 作者:行者123 更新时间:2023-12-02 04:50:49 27 4
gpt4 key购买 nike

我正在显示一个表格。在每一行中都应该有一个删除按钮,用于从表中删除元素。

我的问题是,我不确定如何将元素的 id 传递给 View 。

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 %}

View .py

if request.method == 'POST' and 'delete' in request.POST:
Eintrag.objects.filter(pk=id).delete()
return HttpResponseRedirect(request.path)

所以我需要将每个帖子的 post.pub_date 传递给 View ,我怎样才能实现这一点?

最佳答案

My problem is, I'm not sure how to pass the id of the element to the view.

我可以想到两种方法来做到这一点。我将一一介绍它们。

1.在您的应用中创建一个单独的 URL 路由,专门用于删除对象:

('/post/<pk>/delete/', name="delete_post"),

然后将表单的操作指向此网址:

<form action="{% url 'delete_post' post.pk %}" method="POST">
...

最后,修改您的 View 函数以接受 pk 参数:

def my_view(request, pk): 
...
<小时/>

2.第二种方法是在表单中创建另一个字段并向其传递对象的 pk:

只需在表单中创建另一个字段即可。

<form action="" method="POST">
<input type="hidden" value="{{ post.pk }}" name="pk">
...

然后在您的 View 中只需查看 request.POST['pk'] 即可获取帖子的 pk。

关于django - 在django中删除带有表单的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50547018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com