создание страницы подтверждения в django при удалении - PullRequest
0 голосов
/ 05 апреля 2020

После учебника, где он использует страницу подтверждения, когда вы нажимаете кнопку удаления. Но он использует представление класса (не уверен, что это правильный термин. Вот как он это делает

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)

Единственная проблема здесь в том, что я продолжаю становиться недействительным, поэтому я никогда не получаю все это, и он просто перезагружает страницу подтверждения.

Это мое удаление / подтверждение . 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...