Продукты не отображаются на странице просмотра продукта 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 %}

И посмотрим, решит ли это

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