首页 > 解决方案 > 我如何在 django python 中创建删除按钮?

问题描述

我是 Django 新手,我会尽力解决这个问题。所以我尝试在我的模板上创建一个删除按钮。我创建了我的视图并创建了我的 url,但它不起作用。

所以这里是我的观点:

def book_delete(request, pk):
book = get_object_or_404(Book, pk=pk)
if request.method == 'POST':
    book.delete()
    return redirect('/')
return render(request, "livre/newbook_form.html", {'form': book})

我的网址

from . import views
from django.conf.urls import url

urlpatterns = [
        url(r'^livre/(?P<pk>[0-9]+)/$', views.book_delete, name='book_delete')
    ]

我的模板

<form action="liste" method="POST">{% csrf_token %}
    <table>
        <th>Titre</th><th>Auteur</th><th>Nombre de pages</th><th>Supprimer</th>

            {% for Book in Book %}
            <tr>
                <td>{{ Book.title }}</td>
                <td>{{ Book.author }}</td>
                <td>{{ Book.num_pages }}</td>
                <td>
                    <form action="{% url 'book_delete' Book.id %}" method="POST">
                        {% csrf_token %}
                        <input type="button" value="{{Book.id}}"/>
                    </form>
                </td>
            </tr>
            {% endfor %}
    </table>
</form>
 

我不知道为什么它不起作用。你能帮助我吗 ?

标签: django

解决方案


您需要提交表单,因此使用type="submit"[dev-mozilla]

<form action="{% url 'book_delete' Book.id %}" method="POST">
    {% csrf_token %}
    <input type="submit" value="delete"/>
</form>

推荐阅读