Метод не разрешен (POST): /cbvdelete/5/ Метод не разрешен: /cbvdelete/5/

this the error i got when i run this code,this is the error i get

я не могу запустить этот код

viwes.py

from django.shortcuts import render, redirect
from django.urls import reverse_lazy, reverse

from . models import Task
from . forms import Taskform
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView,DeleteView



class Tasklistview(ListView):
    model = Task
    template_name = 'home.html'
    context_object_name = 'task'

class Detailview(DetailView):
    model=Task
    template_name = "details.html"
    context_object_name = 'task'

class Updateview(UpdateView):
    model = Task
    template_name = "update.html"
    context_object_name = "task"
    fields = ('name', 'priority', 'date')
    def get_success_url(self):
        return reverse_lazy('todoapp:cbvdetail',kwargs={'pk':self.object.id})

class Deleteview(DetailView):
    model = Task
    template_name = 'delete.html'
    success_url = reverse_lazy('todoapp:home')

urls.py

    from django.urls import path
    from . import views
    app_name='todoapp'
    urlpatterns = [
        path('',views.home,name='home'),
        path('delete/<int:id>/',views.delete,name='delete'),
        path('edit/<int:id>/',views.update,name='update'),
        path('cbvhome/',views.Tasklistview.as_view(),name='home'),
        path('cbvdetail/<int:pk>/',views.Detailview.as_view(),name='cbvdetail'),
        path('cbvupdate/<int:pk>/',views.Updateview.as_view(),name='edit'),


     ]

когда я запускаю этот код, я получаю ошибку This page is not working right now я не могу запустить этот код gngnitgbnugriujvnnvtvnviuvntnvtvitu

Вы наследуете Deleteview от DetailView, а не от DeleteView, отсюда ошибка:

from django.views.generic import DeleteView

class Deleteview(DeleteView):
    model = Task
    template_name = 'delete.html'
    success_url = reverse_lazy('todoapp:home')

Однако я бы настоятельно рекомендовал не давать представлениям имена типа Deleteview, поскольку их легко спутать со встроенными в Django представлениями на основе классов. Обычно модель указывается в имени, поэтому TaskDeleteView вместо Deleteview:

class TaskDeleteView(DeleteView):
    model = Task
    template_name = 'delete.html'
    success_url = reverse_lazy('todoapp:home')
Вернуться на верх