Page not found (404) django. Ошибка при переходе на страницу, на которой должна отобразиться подробная информация о товаре из бд
я новичок в Django. Пишу сайт онлайн доски объявлений. При нажатии на карточку товара, по идее должна отобразиться страница с подробной информацией о нём, которая берётся из базы данных, но выходит ошибка "Page not found (404)". Помогите разобраться. Вот фрагменты кода:
models.py
from django.db import models
class Products(models.Model):
title = models.TextField()
description = models.TextField()
price = models.IntegerField()
views.py
from .models import Products
from django.shortcuts import render, get_object_or_404
def index(request):
prod = Products.objects.all()
return render(request, 'index.html', context = {'prod' : prod})
def product_detail(request, product_id):
product = Products.objects.get(id=product_id)
product = get_object_or_404(product, id=product_id)
return render(request, 'product_detail.html', {'product': product})
urls.py
from test_app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name = 'index'),
path('index.html', views.index, name = 'index'),
path('product/<int:product_id>/', views.product_detail, name='product_detail'),
]
ошибка происходит из за того, что в массиве urlpatterns в файле urls.py нет пути по которому вы переходите.
Ошибка находится в файле index.html
<div class="card-body">
<a href="product_detail.html" class="h3 text-decoration-none">{{ prod.title }}</a>
<p class="mb-0">{{ prod.price }}</p>
</div>
Попробуйте изменить атрибут 'href' элемента 'a' на product/{{ prod.id }} для корректного перехода на страницу карточки
<a href="product/{{ prod.id }}" class="h3 text-decoration-none">{{ prod.title }}</a>