Django-在模板中显示集合中的项

  • 本文关键字:集合 显示 Django- django
  • 更新时间 :
  • 英文 :


我正在用Django建立一个电子商务商店,我已经将一些产品添加到了一个集合中。我希望能够单独显示每个收藏与已添加到其中的产品。

这是我的型号.py代码

#Collections model Fields
class Collections(models.Model):
title = models.CharField(max_length=100)
products = models.ManyToManyField(Product)

def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('collections', kwargs={'slug': self.slug})

这是我的观点.py:

def collectionsPage(request, slug):
collections = Collections.objects.get(slug=slug)
products = Product.objects.all()    
context = {"products": products, "collections":collections,}
return render(request, "collections.html", context)

这是我的网址.py:

urlpatterns = [
path('collections/<slug:slug>', views.collectionsPage, name="collections"),
]

这是我的HTML代码:

{% for collection in collections %}
<form action="{{collection.products.get_absolute_url}}" method="post">
{% csrf_token %}
<button class="polaroid" style="background-color:white; border:none">
<div>
<img src="{{collection.products.imageURL}}" alt="iPhone image">
<h3 class="container">{{collection.products.title}}</h3>
<h4 class="container">{{collection.products.price}}</h4>
</div>
</button>
</form>
{% endfor %}

我已经能够解决以下问题:

#Nothing to change in Models.py
#Views.py
def collectionsPage(request, slug):
collections = Collections.objects.get(slug=slug).products.all() ###
data = cartData(request)
cartItems = data["cartItems"]
context = {"collections":collections, "cartItems":cartItems}
return render(request, "collections.html", context)
#HTML code:
{% for product in collections %}
<form action="{{product.get_absolute_url}}" method="post">
{% csrf_token %}
<button class="polaroid" style="background-color:white; border:none">
<div>
<img src="{{product.imageURL}}" alt="iPhone image">
<h3 class="container">{{product.title}}</h3>
<h4 class="container">{{product.price}}</h4>
</div>
</button>
</form>
{% endfor %}

最新更新