Почему функция get_absolute_url не работает?

Я пытаюсь использовать get_absolute_url для получения объекта (post_detail) из (post_list), но возвращается без объекта и все на той же странице (post_list) без ошибки. в views.py :

# Список объектов с использованием представлений на основе функций

def post_list(request):
    post_list=Post.objects.all().order_by('-created_at')
    lastest=post_list.order_by('-created_at')[:4]
    last_post= post_list.order_by('-created_at')[0]
    context={
        'allpost':post_list,
        'latest':lastest,
        'lastpost':last_post
    }
    return render(request,'post/post_list.html',context)

# Post_singl_object using DetailView

class PostDetail(DetailView):
    model=Post
    context_object_name='post_detail'
    def get_context_data(self, **kwargs):
        context= super().get_context_data(**kwargs)
        context['slug']=super().get_context_data(**kwargs)
        return context

urls.py :

from django.urls import path
from . import views
app_name="allpost"

urlpatterns = [
    path('', views.post_list),
    path('<slug:slug>',views.PostDetail.as_view(),name='post_detail'),
]

в моих шаблонах на странице (post_list.html) я делаю цикл для объектов списка, чтобы получить (название, заголовок, изображение и автора), но в ссылке я использую (

)
def get_absolute_url(self):
        return reverse("post_detail", kwargs={'slug': self.slug}

) для перенаправления на страницу поста, но это не работает и все еще находится на той же странице (post_list). в post_list.html :

{% for post in allpost  %}
<a href="{{ post_detail.get_absolute_url }}" class="stretched-link">Continue reading</a>

{% endfor %}

есть идеи?

Вы забыли предварять url меткой app_name, определенной в urls.py файле

def get_absolute_url(self):
    return reverse("allpost:post_detail", kwargs={'slug': self.slug}
Вернуться на верх