删除时在Django中创建确认页面

时间:2020-04-05 16:32:10

标签: django django-views django-templates

在教程中,单击“删除”按钮时将使用确认页面。但是他正在使用的是类视图(不确定这是否正确。这就是他的工作方式

class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
    model = Post
    success_url = '/'

    def test_func(self):
        post = self.get_object()
        if self.request.user == post.author:
            return True
        return False

由于我提出了不同的看法(来自不同的教程),所以我希望通过使用与平常一样的帖子但要有一个确认页面来使观点保持一致。

注意:我不想像其他人通常推荐的那样使用确认弹出窗口。

这就是我所拥有的

@login_required
def post_delete(request, id):
    post = Post.objects.get(id=id)

    if post.author != request.user:
        raise Http404("Can't find post")

    form = PostForm(request.POST or None, instance=post)
    print(form)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect('blog_posts_by_logged_user')

    context = {
        'form' : form
    }

    return render(request, "blog/delete_confirm.html", context)

这里唯一的问题是,我一直变得无效,所以我从不忘了整个事情,它只是重新加载了确认页面。

这是我的delete / confirm.html模板

{% extends 'blog/base.html' %}

{% block content %}
    <form method="POST" action="">
        {% csrf_token %}
        <div>Are you sure you want to delete {{ form.instance.title }}</div>
        <button type="submit">Confirm delete</button>
        <a href="{% url 'blog_posts_by_logged_user' %}">Cancel</a>
    </form>
{% endblock content %}

0 个答案:

没有答案
相关问题