NoReverseMatch at/myapp/products/
Reverse for 'product_detail' not found. 'product_detail' is not a valid view function or pattern name.
Error during template rendering
In template C:\Users\User\job\mysite\myvenv\myproject\myapp\templates\base_generic.html, error at line 8
<meta name="viewport" content="width=device-width, initial-scale=1,shrink-to-fit="no">
Я новичок в Django и использую версию 2.1
Когда я смотрю на http://127.0.0.1:8000/
,
У меня есть ошибка выше при нажатии «Продукты» вместо получения названия продукта.
В base_generic.html
<meta name="viewport" content="width=device-width, initial-scale=1,shrink-to-fit="no">
<li><a href="{% url 'myapp:products'%}">Products</a></li>
At product_list.html,
{% extends "base_generic.html" %}
{% if product_list %}
{% for product in product_list %}
<a href="{{product.get_absolute_url}}">{{product.name}}</a>
{% endfor %}
{% else %}
No product
{% endif %}
{% endblock %}
В myapp urls.py,
from django. urls import path
from myapp import views
app_name = 'myapp'
urlpatterns = [
path('products/', views. ProductListView.as_view(), name='products'),
path('product/<int:pk>/', views.ProductDetailView.as_view(), name='product-detail'),
]
В models.py
,
from django.db import models
from django.urls import reverse
class Product(models.Model):
name = models.CharField(max_length=100)
description = models.TextField(max_length=200, help_text="Enter a brief description of the product.")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('myapp/product_detail', args=[str(self.id)])
На views.py,
class ProductListView(generic.ListView):
model = Product
def product_list_view(request):
products = Product.objects.filter(name=name)
return render(
request,
'myapp/product_list.html',
{'products':product}
)
class ProductDetailView(generic.DetailView):
model = Product
def product_detail(request, pk):
product_id = get_object_or_404(Product, pk=pk)
return render(
request,
'microfinance/product_detail.html',
context={'product_id':product}
)
Что я должен сделать, чтобы получить название продукта при нажатии «Продукты» и оттуда (также при нажатии на название продукта) получить сведения о продукте?