Реверс для 'cbvdetail' не найден. 'cbvdetail' не является действительным именем функции представления или шаблона

я не могу вызвать свой класс детализации, используя reverse_lazy 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



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("cbvdetail",kwargs={'pk':self.object.id})

urls.py

from django.urls import path
from . import views
app_name='todoapp'
urlpatterns = [
    path('',views.home,name='home'),
    # path('details', views.details,name='ere')
    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'),


]

я хочу решить этот вопрос

Вы указали app_name в файле urls.py. Это означает, что вам нужно префикснуть имя представления с этой меткой приложения, так:

def get_success_url(self):
    return reverse_lazy('todoapp:cbvdetail', kwargs={'pk':self.object.id})

Если вы переопределите get_success_url, не имеет особого смысла работать с reverse_lazy, поскольку этот метод (обычно) срабатывает только в том случае, если урлы уже загружены, поэтому вы можете работать с:

from django.urls import reverse

# ⋮

def get_success_url(self):
    return reverse('todoapp:cbvdetail', kwargs={'pk':self.object.id})
Вернуться на верх