Python Django具有多对多关系的两个模型打印在模板上
我有分类和产品型号。这些有一个多对多的关系 我的模型Python Django具有多对多关系的两个模型打印在模板上,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我有分类和产品型号。这些有一个多对多的关系 我的模型 class ProductCategories(models.Model): name = models.CharField(max_length = 60) image = models.ImageField(upload_to = 'ProductCategories') publish_date = models.DateTimeField(auto_now=False, auto_now_add=True)
class ProductCategories(models.Model):
name = models.CharField(max_length = 60)
image = models.ImageField(upload_to = 'ProductCategories')
publish_date = models.DateTimeField(auto_now=False, auto_now_add=True)
is_available = models.BooleanField()
class Product(models.Model):
category = models.ManyToManyField(ProductCategories)
name = models.CharField(max_length = 60)
price = models.DecimalField(max_digits=65, decimal_places=2)
description = models.TextField()
options = models.TextField()
tags = models.TextField()
publish_date = models.DateTimeField(auto_now=False, auto_now_add=True)
stock_number = models.IntegerField()
is_available = models.BooleanField()
我的看法
def category(request):
categories = ProductCategories.objects.all()
products = Product.objects.none()
for category in categories:
products = products.union(Product.objects.filter(category = category)[:4])
return render(request, 'shop/shopping.html', {'categories' : categories, 'products' : products})
我的Html
{% for category in categories %}
<div class="row">
<h3 style="padding-left: 15px; padding-bottom: 15px">{% filter upper %}{{ category.name }}{% endfilter %}</h3>
</div>
<div class="row">
{% for product in products %}
{{ product.category }}
{% endfor %}
</div>
{% endfor %}
{%用于类别中的类别%}
{%filter upper%}{{category.name}{%endfilter%}
{products%中产品的%s}
{{product.category}
{%endfor%}
{%endfor%}
我想列出类别。在每个类别下,将列出4种产品
是否可以通过包含产品及其类别的queryset
谢谢,您只需执行以下操作:
def category(request):
categories = ProductCategories.objects.all()
return render(request, 'shop/shopping.html', {'categories' : categories})
模板呢
{% for category in categories %}
{% for product in category.product_set.all|slice:":4" %}
{{ product.name }}
{% endfor %}
{% endfor %}