У меня проблема с обратной функцией Django

Я изучаю django и долго пытался заставить работать reverse(), но у меня ничего не получилось. Я не хочу использовать {% url ''....%}.

это models.py Я создал 2 таблицы Category & Product

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    price = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.name

это urls.py

from django.urls import path
from . import views

app_name = 'myapp'

urlpatterns = [
    path('product' , views.all_products , name= 'products'),
    path('product/<int:product_id>/', views.product_detail, name='product_detail'),
]

это views.py

from django.shortcuts import render, get_object_or_404
from django.urls import reverse , reverse_lazy
from .models import Product

def all_products(request):
    products = Product.objects.all()
    context = {
        'products' : products
    }
    return render(request , 'index.html',context)

def product_detail(request, product_id):
    product = get_object_or_404(Product, id=product_id)
    detail_url = reverse_lazy ('myapp:product_detail', args = [product_id])
    return render(request, 'product_detail.html', {
        'product': product,
        'detail_url': detail_url,
    })

это index.html Проблема в обратной функции, когда я нажимаю на тег achor, у меня не открывается страница detail_page

<!DOCTYPE html>
<html>
<head>
    <title>Product Detail</title>
</head>
<body>
    {% for product in products%}
        <a href="{% url 'myapp:product_detail' product.id%}" onclick="show()"><h1>{{ product.name }}</h1></a>
    {% endfor%}
    
    <!--  -->

</body>
</html>

это product_detail.html

{{продукт}} введите здесь



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