Продукты не отображаются на странице просмотра продукта django
я создал функцию для просмотра продуктов на странице просмотра продуктов я пробовал так много раз но не могу найти ни одного помогите мне пожалуйста
вот мой код
views.py
def product_view(request,cate_slug,prod_slug):
if (Category.objects.filter(slug=cate_slug, status=0)):
if (Products.objects.filter(slug=prod_slug, status=0)):
product = Products.objects.filter(slug=prod_slug, status=0)
contex = {
'product':product,
}
else:
messages.warning(request,"product not found")
return redirect("collection")
else:
messages.error(request,"something went wrong")
return redirect("collection")
return render(request,"product_view.html",contex)
urls.py
path('collection/str:cate_slug/str:prod_slug',views.product_view,name="product"),
product view.html
<
<
< [...]
{% endblock %}
i just want to see product detils in product view html page any one help me because i am new to django
Вы используете
Вы используете {{product.name}}
, что неправильно. Продукты (на самом деле product
, исходя из вашего мнения) - это кверисет, и у него нет name
. Вместо этого сначала измените имя вашего кверисета на более различимое products
, а затем используйте следующее:
{% for product in products %}
{{ product.name }}
В просмотрах:
def product_view(request,cate_slug,prod_slug):
if (Category.objects.filter(slug=cate_slug, status=0)):
if (Products.objects.filter(slug=prod_slug, status=0)):
product = Products.objects.filter(slug=prod_slug, status=0)
else:
messages.warning(request,"product not found")
return redirect("collection")
else:
messages.error(request,"something went wrong")
return redirect("collection")
return render(request,"product_view.html",{'product':product}) #I have removed context from if statement and added directly here.
А в ваших шаблонах:
{{product.name}} #Use this only, when you want to display single field only.
ИЛИ
{% for prod in product %} #Use this only, when you want to display all fields on template
{{prod.name}}
#Add remaining fields
{% endfor %}
И посмотрим, решит ли это