Reverse for 'view_post' with keyword arguments '{'pk': 5}' не найден. Проверен 1 шаблон(ы): ['post/(?P<post_id>[0-9]+)/$']
Я искал об этой проблеме, но ничего не нашел, и это первый раз, когда я прошу о помощи. Эта проблема возникла, когда я начал делать детальный просмотр поста. Этот сайт пишет: "Похоже, что ваш пост состоит в основном из кода; пожалуйста, добавьте больше деталей", но я не знаю, что написать. Не вините меня)
#urls.py
from django.urls import path
from .views import *
urlpatterns = [
path('', home, name='home'),
path('category/<int:category_id>/', get_category, name='category'),
path('company/<int:company_id>/', get_company, name='company'),
path('post/add_post/', add_post, name='add_post'),
path('post/<int:post_id>/', view_post, name='view_post'),
]
#views.py
from django.shortcuts import render, redirect
from .models import *
from .forms import ProductsForm
from django.urls import reverse
def home(request):
products = Products.objects.all()
categories = Category.objects.all()
companies = Company.objects.all()
context = {
'products': products,
'categories': categories,
'title': 'Products',
'companies': companies
}
return render(request, template_name='shop/home.html', context=context)
def get_category(request, category_id):
products = Products.objects.filter(category_id=category_id)
categories = Category.objects.all()
category = Category.objects.get(pk=category_id)
return render(request, 'shop/category.html', {'products': products, 'categories': categories, 'category': category})
def get_company(request, company_id):
products = Products.objects.filter(company_id=company_id)
companies = Company.objects.all()
company = Company.objects.get(pk=company_id)
return render(request, 'shop/company.html', {'products': products, 'company': company, 'companies': companies})
def add_post(request):
if request.method == 'POST':
form = ProductsForm(request.POST)
if form.is_valid():
Products.objects.create(**form.cleaned_data)
return redirect('home')
else:
form = ProductsForm()
return render(request, 'shop/add_post.html', {'form': form})
# вторым аргументом ф-ция должна принимать (там где url <int:post_id>)
def view_post(request, post_id):
post_item = Products.object.get(pk=post_id)
return render(request, 'shop/view_post.html', {'post_item': post_item})
#view_post.html
{% extends 'base.html' %}
{% block title %}
{{ post_item.title }} :: {{ block.super }}
{% endblock %}
{% block content %}
<div class="card" style="width: 40rem;">
<div class="card-body">
<div class="media">
{% if item.photo %}
<img src="{{ item.photo.url }}" alt="" width="350" class="mr-3">
{% else %}
<img src="https://picsum.photos/200/350" alt="" class="mr-3">
{% endif %}</div>
<br>
<h5 class="card-title">{{ view_post.title }}</h5>
<p class="card-text">{{ view_post.content|safe|linebreaks }}</p>
</div>
</div>
<br>
{% endblock %}
ошибка: