Когда я использую get_absolute_url в django, я все еще на той же странице
я работаю в django 3.2.7, но когда я использую get_absolute_url()
функцию (в списке объектов) возвращается без объекта и все еще на той же странице (список объектов), есть идеи?
models.py
:
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("post_detail", kwargs={'slug': self.slug})
def headline(self):
return self.content[:50]+'...'
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)
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
:
{% for post in allpost %}
<small> نُشر من قبل : {{post.author}}|| </small>
<small>بتاريخ : {{post.created_at}}</small>
</div>
<h3 class="mb-0"style="direction: rtl;">{{post.title}}</h3>
<p class="mb-auto"style="direction: rtl;">{{post.headline}}
</p>
<a href="{{ post_detail.get_absolute_url }}"class="stretched-link">Continue reading</a>
</div>
<img class="rounded float-left m-1" src="{{post.image.url}}" alt="" style="height: 260px; width: 250px;">
</div>
</div>
</div>
{% endfor %}
с этим <a href="{{ post_detail.get_absolute_url }}" class="stretched-link">Continue reading</a>
, ссылка не работает, но ошибка не отображается.
Как я могу решить эту проблему?
Спасибо!