Hello everyone,
i am having trouble. i created a delete button but my page does not
confirm the deletion of the post, nor does it redirect to another page.
may someone help guide me on what it is i have done wrong and explain for
me please?
- I feel as though the problem could be located in my views.py but not sure
Here is my views.py:
*from django.shortcuts import render*
*from django.contrib.auth.mixins import LoginRequiredMixin,
UserPassesTestMixin*
*from django.views.generic import ListView, DetailView, CreateView,
UpdateView, DeleteView*
*from .models import Post*
*
*
*def home(request):*
* context = {*
* 'posts': Post.objects.all()*
* }*
* return render(request, 'blog/home.html', context)*
*
*
*class PostListView(ListView):*
* model = Post*
* template_name = 'blog/home.html'*
* context_object_name = 'posts'*
* ordering = ['-date_posted']*
*
*
*class PostDetailView(DetailView):*
* model = Post*
**
**
*class PostCreateView(LoginRequiredMixin, CreateView):*
* model = Post*
* fields = ['title', 'content']*
**
* def form_valid(self, form):*
* form.instance.author = self.request.user*
* return super().form_valid(form)*
**
*class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):*
* model = Post*
* fields = ['title', 'content']*
**
* def form_valid(self, form):*
* form.instance.author = self.request.user*
* return super().form_valid(form)*
**
* def test_func(self):*
* post = self.get_object()*
* if self.request.user == post.author:*
* return True*
* return False*
**
*class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):*
* model = Post*
* success_url = 'blog'*
**
* def test_func(self):*
* post = self.get_object()*
* if self.request.user == post.author:*
* return True*
* return False*
*
*
*def about(request):*
* return render(request, 'blog/about.html', {'title': 'About'})*
*
*
*
*
*
*
Here is my urls.py:
*from django.urls import path*
*from .views import PostListView, PostDetailView, PostCreateView,
PostUpdateView, PostDeleteView*
*from . import views*
*
*
*urlpatterns = [*
* path('', PostListView.as_view(), name='blog-home'),*
* path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'),*
* path('post/new/', PostCreateView.as_view(), name='post-create'),*
* path('post/<int:pk>/update/', PostUpdateView.as_view(),
name='post-update'),*
* path('post/<int:pk>/delete/', PostDeleteView.as_view(),
name='post-delete'),*
* path('about/', views.about, name='blog-about'),*
*]*
And here is my post_confirm_delete.html:
*{% extends "blog/base.html" %}*
*{% block content %}*
* <div class="content-section">*
* {% csrf_token %}*
* <fieldset class="form-group">*
* <legend class="border-bottom mb-4">Delete Post</legend>*
* <h2>Are you sure you want to delete this post? "{{
object.title }}"</h2>*
* </fieldset>*
* <div class="form-group">*
* <button class="btn btn-outline-danger"
type="submit">Yes, Delete</button>*
* <a class="btn btn-outline-secondary" href="{% url
'post-detail' object.id <http://object.id> %}">Cancel</a> *
* </div>*
* </form>*
* </div> *
*{% endblock content %}*
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/3a23eabf-f8bd-4fa3-a27b-199a3aabf33bn%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/3a23eabf-f8bd-4fa3-a27b-199a3aabf33bn%40googlegroups.com?utm_medium=email&utm_source=footer>.