在 Django 中按类别显示对象

我正在构建一个电子商务应用程序,我想创建一个部分来按类别显示一些特色项目。我使用三个滑块来显示这些项目;每个滑块都是一个特色类别,滑块中的每个项目都是一个特色项目。问题是我不知道如何将项目分配给正确的滑块。例如:我想将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_name


class 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


慕桂英546537
浏览 70回答 1
1回答

慕容708150

您可以将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:        ...您可以将此模式应用于您的模板
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5