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'),
]
Ответы (1 шт):
Автор решения: Daniel
→ Ссылка
ошибка происходит из-за того, что в массиве 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>