Django 2在我的模板页面中结合了ListView和DetailView



我有两个型号"product"one_answers"brand"产品有品牌领域ManyToMany将产品与相关品牌联系起来

## models.py 
class Product(models.Model):
title           = models.CharField(max_length=120)
slug           = models.SlugField(blank=True, unique=True)
description     = models.TextField()
brand = models.ManyToManyField(Brand)
class Brand(models.Model):
title = models.CharField(max_length=250, unique=True)
slug = models.SlugField(max_length=250, unique=True)
description = models.TextField(blank=True)
## url.py 
re_path(r'^brands/(?P<slug>[w-]+)/$', BrandDetail.as_view(), name = 'branddetail'),
## views.py
class BrandDetail(DetailView):
queryset = Brand.objects.all()
template_name = "brands/brand.html"
## brands/brand.html 
{{ object.title }} <br/>
{{ object.description }} <br/>

现在当我rendring brand.html时,它显示了品牌名称和描述精细

我的问题是如果我想在同一页面中呈现链接到特定品牌的产品列表,"考虑到URL中已经传递的品牌碎片",我该怎么做?

类是DetailsView,它在查询集中只有品牌详细信息,如图所示!!我需要任何解决方案而不是

您不需要ListView,您可以迭代该品牌的product_set,如:

{{ object.title }} <br/>
{{ object.description }} <br/>
products:
{% for product inobject.product_set.all%}
{{ product.title }} <br/>
{% endfor %}

最新更新