我正在构建一个电子商务应用程序,我想创建一个部分来按类别显示一些特色项目。我使用三个滑块来显示这些项目;每个滑块都是一个特色类别,滑块中的每个项目都是一个特色项目。问题是我不知道如何将项目分配给正确的滑块。例如:我想将JeansJacket分配给“衣服和配饰”并显示它。我试过这个:{% for cat in categories %} <h1>{{ cat.cat_name }}</h1> <!--(carousel code in between)--> <div class="carousel-inner" role="listbox"> {% for item in featured_items %} {% if item.Categoría in cat.cat_name %} {{ item }} {% endif %}这是我所拥有内容的简化版本,没有其余内容。我只是不知道如何迭代特色项目并将它们显示在相应的类别中。编辑:这是在 models.py 中:class Categorías(models.Model): cat_name = models.CharField(max_length=30) Destacado = models.BooleanField() class Meta: ordering = ('cat_name',) verbose_name = 'Categoría' verbose_name_plural = 'Categorías' def __str__(self): return self.cat_nameclass publicaciones(models.Model): Título = models.CharField(max_length=30) Descripción = models.TextField(max_length=200) Precio = models.FloatField() Fotos = models.ImageField() Categoría = models.ForeignKey(Categorías, on_delete=models.CASCADE) Promocionado = models.BooleanField() class Meta: verbose_name = 'Publicación' verbose_name_plural = 'Publicaciones' def __str__(self): return self.Título
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
您可以将prefetch_related
和Prefetch
与自定义查询一起使用来获取每个类别的所有相关文章。
categories = Categorías.objects.prefetch_related(Prefetch(
'publicaciones_set',
queryset=publicaciones.objects.filter(Promocionado=True),
to_attr='featured_items'
))
现在您可以循环遍历每个类别,然后循环遍历此预取。您不需要创建单独的featured_items查询集
for category in categories:
for featured_item in category.featured_items:
...
您可以将此模式应用于您的模板
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消