使用标签'{{value |第一}}'

时间:2019-02-07 14:29:45

标签: python django templates

我有一张照片列表,我想始终将它们作为第一个添加为个人资料照片。我在django文档中找到了以下“ |first”标记,但是每次尝试以这种方式添加标记时,我都会遇到这种情况,“ {{image_list | first.photo.url} }'我什么也没收到。

任何帮助将不胜感激。

我的模型。py

class Image(models.Model):
    photo = models.ImageField()
    added_at = models.DateTimeField(auto_now_add=True)
    masseurs = models.ForeignKey(Masseurs, on_delete=models.CASCADE)

views.py

masseur = get_object_or_404(Masseurs, pk=masseurs_id)
image_list = Image.objects.filter(masseurs_id = masseurs_id)
return render(request, 'masseur/masseur_detail.html', {'image_list':image_list})

2 个答案:

答案 0 :(得分:1)

由于image_list是一个QuerySet而不是一个列表,因此|first将不起作用。但是,您可以使用:

{{ image_list.first.photo.url }}

有关参考,请参见:Accessing Method Calls

  

大多数附加到对象的方法调用也可以从模板中获得。这意味着模板不仅可以访问类属性(例如字段名称),还可以访问从视图传入的变量。

答案 1 :(得分:1)

为什么不在视图中这样做?

image = Image.objects.filter(masseurs_id=masseurs_id).first()

但是如果您需要在模板中执行此操作:

{{ image_list.first.photo.url }}

这是因为image_list是一个查询集,因此您可以使用.first()语法获取查询集的第一项