Django eccomerce prodcut имя не отображается в файле
я создаю новый сайт django eccomorce теперь на странице детализации продукта вот мой код
проблема в том, что я не могу увидеть правильное название товара на html странице проблема с first() когда я использую first, то отображается только название продукта, но все продукты имеют одинаковые названия, у меня на странице 8 продуктов, восемь названий продуктов совпадают с первым, просто как перезапись, также я не могу использовать цикл for с first()
я добавлю несколько фотографий
urls.py
path('collection/<str:cate_slug>/<str:prod_slug>',views.product_view,name="productview"),
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)):
products = Products.objects.filter(slug=prod_slug, status=0).first()
context = {'products':products}
else:
messages.error(request,"no such product found")
return redirect("collection")
else:
messages.error(request,"no such category found")
return redirect("collection")
return render(request,"product_view.html",context)
models.py
class Products(models.Model):
category = models.ForeignKey(Category,on_delete=models.CASCADE)
slug = models.CharField(max_length=150, null=False, blank=False)
product_name = models.CharField(max_length=150, null=False, blank=False)
product_image = models.ImageField( upload_to=get_image,null=True,blank=True)
description = models.TextField(max_length=500,null=False,blank=False)
original_price = models.IntegerField(null=False,blank=False)
selling_price = models.IntegerField(null=False,blank=False)
status = models.BooleanField(default=False,help_text="0=default , 1=Hidden")
trending = models.BooleanField(default=False,help_text="0=default , 1=Trending")
meta_title = models.CharField(max_length=150,null=False,blank=False)
meta_keyword = models.CharField(max_length=150,null=False,blank=False)
meta_description = models.CharField(max_length=400,null=False,blank=False)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.product_name
productview.html
{% block content %}
<h1>{{ products.product_name }} </h1>
{% endblock %}
я просто хочу правильное название продукта для каждой категории я застрял здесь утром помощь приветствуется спасибо всем за помощь до сих пор
Я думаю, что вам нужно пройтись циклом по вашим продуктам:
{% for product in products %}
<h1>{{ product.product_name }}</h1>
{% endfor %}
Вот что я придумал, что позволяет определить доступ на основе каждого поля.
Обратите внимание, что обычно имя модели имеет единственное число, поэтому оно должно быть class Products(models.Model):