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 %}