Почему в Django ничего не отображается на странице?
Вот вопрос, у меня есть товары на странице и у каждого товара есть свой slug. Этот slug перенаправляет на персональную страницу товара, где отображается вся необходимая информация о товаре (название, описание, изображения и т.д.). Но по какой-то причине страница просто пустая, т.е. то, что написано в html-файле, не отображается, и я не понимаю, почему. Редирект проходит без ошибок, в урле появляется название товара, но информации о нем нет.
P.s в представлении, я использую печать, чтобы увидеть в терминале, если я действительно перехожу на страницу продукта и получаю название продукта. И да, я получаю его в терминале
views.py
def product_detail(request, post):
product = get_object_or_404(ProductModel, slug=post)
print(product.title)
return render(request, 'products/detail-products.html', {
'product': product,
})
urls.py
from django.urls import path
from products import views
app_name = 'products'
urlpatterns = [
path('', views.products, name='products'),
path('product/<slug:post>/', views.product_detail, name='product_detail'),
]
product.html - Здесь есть кнопка, которая перенаправляет на страницу личной информации.
<div class="button__more">
<a href="{% url 'products:product_detail' product.slug %}"><button>Подробнее</button></a>
</div>
product-detail.html
{% extends 'main/base.html' %}
{% block title %}Detail {{ product.title }}{% endblock title %}
{% block content %}
<style>
.product__detail__photo img {
width: 60%;
height: auto;
background-size: cover;
object-fit: cover;
border-radius: 5px;
}
</style>
<div class="product__detail">
<div class="product__image">
{% if product.product_images %}
<img src="{{ product.product_images.url }}" alt="product image">
{% else %}
<p>No image available</p>
{% endif %}
</div>
<div class="photo__detail__info">
<div class="photo__detail__info__title">
<h1>{{ product.title }}</h1>
</div>
<div class="photo__detail__info__description">
<h1>{{ product.full_description }}</h1>
</div>
</div>
</div>
{% endblock content %}
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock title %}</title>
</head>
<body>
{% block content %}
{% endblock content %}
</body>
</html>
Я пробовал переписывать представление и использовать различные способы перенаправления по slg, я пробовал делать перенаправление по id, хотя мне это не нужно. Я даже сделал возможность вывода названия товара в консоль, если открыть персональную страницу товара, и все выводится нормально, но на самой странице нет ничего, что должно быть в html-файле.
Я хочу, чтобы при переходе на подробную страницу товара по его слогу у меня отображалась вся необходимая информация об этом товаре, записанная в html-файле, но этого почему-то не происходит и я не понимаю, почему так. В терминале ошибки нет.
Похоже, что вы передаете контекстную переменную 'product' в шаблон detail-products.html, а не product-detail.html. Попробуйте исправить это. Если это не сработает, попробуйте передать в функцию рендеринга другую контекстную переменную, например 'test': 'Test message', чтобы проверить, правильно ли заполняется шаблон тестовыми данными.