Реверс для '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

  1. i tried using pk=post.pk it didn't wrok
  2. i tried using post.pk it didn't work
  3. i tried using pk=post.id it didn't wrok
  4. 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 на это и все готово

Вернуться на верх