为了账号安全,请及时绑定邮箱和手机立即绑定

Django QuerySet 最后从类别中添加

Django QuerySet 最后从类别中添加

慕森卡 2021-09-11 17:47:15
可能是一个非常简单的解决方案,但不能真正想出一个。最终目标是创建一个首先显示类别的画廊。每个类别都应显示最后添加的带有各自类别名称的图像。我的模型.pyclass Category(models.Model):    name           = models.CharField(max_length=200)    slug           = models.SlugField()    objects        = models.Manager()    class Meta:        verbose_name_plural = 'categories'    def __str__(self):        return self.nameclass Item(models.Model):    name           = models.CharField(max_length=200)    description    = models.TextField(blank=False, null=True)    date           = models.DateTimeField(blank=False, null=True)    image          = models.ImageField(blank=True, null=True)    category       = models.ForeignKey(Category, blank=True, null=True, on_delete=models.SET_NULL)    objects        = models.Manager()    class Meta:        app_label = 'home'        get_latest_by = 'date'我的意见.pydef index(request):    cat = Category.objects.all()    latest = Item.objects.latest('date')    context = {        'categories': cat,        'last_added': latest,    }    return render(request, 'gallery/index.html', context)我的 index.html{% block content %}<h4 class="gallery">Gallery</h4>    {% for category in categories %}        <p class="category">{{ category.name }}</p>        <p> <img class="images" src="{{ last_added.image.url }}"> </p>        {% endfor %}{% endblock %}我无法弄清楚如何显示各自类别的最新图像。我知道我必须以某种方式创建一个动态查询,该查询将使用 'category.name' 作为变量,但你如何做到这一点?任何输入都是非常有价值的,至少表明我应该工作的方向。
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您可以在视图中添加:

for c in cat:
    cat.latest_image = Item.objects.filter(category=c).latest('date')

然后在模板的相关部分:

<img class="images" src="{{ cat.latest_image.image.url }}">

这只是一个例子,有很多更优雅的方法可以实现这一点。


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信