Django: Почему один шаблон url работает, а другой нет?

По сути, мой список постов index.html работает отлично, и по ссылке на детальный просмотр поста он работает правильно.

Однако я скопировал тот же код в представление Profile только с постами request.user.

Без {%url 'post_detail' post.slug %} работает, так как остальные посты с пагинацией отображаются как ожидалось. Однако при использовании этого url выдает ошибку: NoReverseMatch at /blog_app/profile/

Повтор для 'post_detail' с аргументами '('',)' не найден. Попытка 1 шаблона(ов): ['(?P[-a-zA-Z0-9_]+)/$']

Код в представлениях и шаблонах по сути идентичен, почему это не работает?

Views.py: (рабочий)

class PostList(generic.ListView):
    model = Post
    queryset = Post.objects.filter(status=1).order_by("-created_on")
    template_name = "index.html"
    paginate_by = 6

(неработающий)

class Profile(generic.ListView):
    model = Post
    template_name = "profile.html"
    paginate_by = 6

    def get_queryset(self):
        return Post.objects.filter(author=self.request.user)

urls.py:

urlpatterns = [
    path('', views.PostList.as_view(), name="home"),
    path('<slug:slug>/', views.PostDetail.as_view(), name='post_detail'),
    path('like/<slug:slug>', views.PostLike.as_view(), name='post_like'),
    path('poll/<slug:slug>', views.PostPoll.as_view(), name='post_poll'),
    path('blog_app/create_post/', views.CreatePost.as_view(), name='create_post'),
    path('blog_app/profile/', views.Profile.as_view(), name='profile'),
]

Мои два шаблона: (рабочий)

{% for post in post_list %}
                <div class="col-md-4">
                    <div class="card mb-4">
                        <div class="card-body">
                            <div class="image-container">
                                {% if "placeholder" in post.featured_image.url %}
                                <img class="card-img-top"
                                    src="https://codeinstitute.s3.amazonaws.com/fullstack/blog/default.jpg">
                                {% else %}
                                <img class="card-img-top" src=" {{ post.featured_image.url }}">
                                {% endif %}
                                <div class="image-flash">
                                    <p class="author">Author: {{ post.author }}</p>
                                </div>
                            </div>
                            <a href="{% url 'post_detail' post.slug %}" class="post-link">
                                <h2 class="card-title">{{ post.title }}</h2>
                                <p class="card-text">{{ post.excerpt }}</p>
                            </a>
                            <hr />
                            <p class="card-text text-muted h6">{{ post.created_on}} <i class="far fa-heart"></i>
                                {{ post.number_of_likes }}</p>
                        </div>
                    </div>
                </div>
                {% if forloop.counter|divisibleby:3 %}
            </div>
            <div class="row">
                {% endif %}
                {% endfor %}

            </div>

(неработающий)

{% for post in post_list %}
                <div class="col-md-4">
                    <div class="card mb-4">
                        <div class="card-body">
                            <div class="image-container">
                                {% if "placeholder" in post.featured_image.url %}
                                <img class="card-img-top"
                                    src="https://codeinstitute.s3.amazonaws.com/fullstack/blog/default.jpg">
                                {% else %}
                                <img class="card-img-top" src=" {{ post.featured_image.url }}">
                                {% endif %}
                                <div class="image-flash">
                                    <p class="author">Author: {{ post.author }}</p>
                                </div>
                            </div>
                            <a href="{% url 'post_detail' post.slug %}" class="post-link">
                                <h2 class="card-title">{{ post.title }}</h2>
                                <p class="card-text">{{ post.excerpt }}</p>
                            </a>
                            <hr />
                            <p class="card-text text-muted h6">{{ post.created_on}} <i class="far fa-heart"></i>
                                {{ post.number_of_likes }}</p>
                        </div>
                    </div>
                </div>
                {% if forloop.counter|divisibleby:3 %}
            </div>
            <div class="row">
                {% endif %}
                {% endfor %}

            </div>
        </div>

url, о котором идет речь, находится в тегах якоря, окружающих post.title и post.excerpt

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