Я не могу отобразить тег url в шаблоне
views.py `
def Product_details (request , product_name):
product_detail = Product.objects.get(pk=product_name)
return render (request, 'product_detail.html', {
'product_detail' : product_detail,
})
`
urls.py
`
urlpatterns = [
path('', views.Product_list , name= 'Product_list'),
path('product/<int:product_name>/', views.Product_details , name= 'Product_details'),
product_detail.html
`
<a href="{% url 'Product_details' product.name %}
``
отображение тега url на странице
В вашем urls.py
файле добавьте эту переменную над urlpatterns:
app_name = "products"
и затем попробуйте получить доступ к нему следующим образом:
<a href="{% url 'products:Product_details' product.name %}">click me</a>
First app_name
должен появляться только один раз в данном файле urls.py. Вы также импортируете модули, которые, похоже, не нужны в вашем файле urls.py. Сейчас у вас, похоже, есть:
from django.urls import path
from .import views
from django.conf import settings
from .forms import OrderForm
from django.conf.urls.static import static
app_name = 'Product_list'
app_name = 'OrderForm'
app_name = 'SpecialProduct'
app_name = 'products'
urlpatterns = [
path('', views.Product_list , name= 'Product_list'),
path('product/<int:product_name>/', views.Product_details , name= 'Product_details'),
path('qa/', views.Question_list , name= 'Question_list'),
path ('order/' , views.OrderForm , name='OrderForm'),
]
Итак, измените вышеуказанный файл на:
from django.urls import path
from .import views
app_name = 'products'
urlpatterns = [
path('', views.Product_list , name= 'Product_list'),
path('product/<int:product_name>/', views.Product_details , name= 'Product_details'),
path('qa/', views.Question_list , name= 'Question_list'),
path ('order/' , views.OrderForm , name='OrderForm'),
]
Далее, сделайте то, что предлагает @Hammad:
<a href="{% url 'products:Product_details' product.name %}">click me</a>
Next.
У вас есть pk=product_name
и path('product/<int:product_name>/'
, которые предполагают, что имя_продукта является первичным ключом и целым числом. Термин name обычно относится к строке, а не к целому числу, поэтому я и хотел увидеть ваш класс Product
.