Реверс для 'Article' с ключевыми аргументами '{'pk': ''}'' не найден. Проверен 1 шаблон(ы): ['this_is_article_number/(?P<pk>[0-9]+)$'].
my post/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.article_list, name='home'),
path('this_is_article_number/<int:pk>', views.ArticleDetailView, name='Article'),
]
post/Views.py
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from .models import Post
class HomeView(ListView):
model = Post
template_name = 'home.html'
ordering = ['-id']
class ArticleDetailView(DetailView):
model = Post
template_name = 'article.html'
home.html
{% extends 'base.html' %} {% load static %} {% block content %}
<header>
<div class="header-wrapper">
<div class="hero">
<div class="hero-left">
<h1 class="main-heading">Live Blogger</h1>
<p class="main-subheading">Learn to design websites</p>
<a href="#" class="btn">Learn More</a>
</div>
<div class="hero-right">
<img src="{% static 'images/hero-image.png' %}" alt="" />
</div>
</div>
</div>
</header>
<div class="wrapper">
<section class="posts-wrapper">
<h2>Latest Blog Posts</h2>
<div class="blogpost-card">
<div class="thumbnail-image">
{% for post in object_list %}
<a href="{% url 'Article' pk=post.pk %}"><img src="{{post.thumbnail.url}}" alt="" /></a>
</div>
<a href="{% url 'Article' pk=post.pk %}">
<h3 class="post-title">{{ post.title }}</h3>
</a>
<div class="post-meta">{{ post.post_time}}</div>
<div class="post-body">
<p>
{{ post.content|safe}}
</p>
<div class="read-more-container">
<a href="{% url 'Article' pk=post.pk %}" class="read-more">Read More</a>
</div>
{% endfor %}
</div>
</div>
</section>
<!-- End of Blogs Section -->
<div class="popular-posts-container">
<h2>Popular Posts</h2>
<div class="popular-posts">
<div class="popular-post">
<div class="thumbnail">
<a href="{% url 'Article' pk=post.pk %}"><img src="{{post.thumbnail.url}}" alt="" /></a>
<a href="{% url 'Article' pk=post.pk %}">
<h3 class="post-title">{{ post.title }}</h3>
</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
пожалуйста, помогите мне, я пытался решить эту проблему, просмотрев много видео на youtube и попытался посмотреть больше информации на stachowerflow, но теперь я действительно застрял, пожалуйста, попробуйте помочь мне. в html
- i tried using pk=post.pk it didn't wrok
- i tried using post.pk it didn't work
- i tried using pk=post.id it didn't wrok
- i tried using post.id it didn't work
Не забудьте импортировать View
.
Напишите следующий код в вашем HomeView
в файле views.py
class HomeView(View):
def get(self, request):
posts = Post.objects.all().order_by("-id")
context = {
"posts": posts
}
return render(request, "home.html", context=context)
И отредактируйте {% for post in post_list %}
на {% for post in posts %}
в файле home.html
class ArticleDetailView(View):
def get(self, request, post_id):
detail = Post.objects.get(id=post_id)
context = {
"detail": detail
}
return render(request, "detail.html", context=context) # <- I don't know your detail template. Please adjust it by yourself.
вместо использования pk используйте id
class ArticleDetailView(View):
def get(self, request, post_id):
detail = Post.objects.get(id=post_id)
context = {
"detail": detail
}
return render(request, "article.html", context=context)
и в вашем html
{% for post in posts %}
<a href="{% url 'Article' post_id=post.id %}"><img src="{{post.thumbnail.url}}" alt="" /></a>
{% endfor %}
и в вашем url
path('<int:post_id>/details',Product_detail.as_view(),name='detail'),
измените acc на это и все готово