Python 使用标记';从模型返回第一个图像;{{value | first}}';

Python 使用标记';从模型返回第一个图像;{{value | first}}';,python,django,templates,Python,Django,Templates,我有一个照片列表,我希望总是第一个添加为个人资料照片。我在django文档中找到了下面的“”标记,但在我的情况下添加它时遇到了问题,每次我尝试这样做,{{image_list | first.photo.url}我什么也没有收到 任何帮助都将不胜感激 My models.py class Image(models.Model): photo = models.ImageField() added_at = models.DateTimeField(auto_now_add=Tru

我有一个照片列表,我希望总是第一个添加为个人资料照片。我在django文档中找到了下面的“”标记,但在我的情况下添加它时遇到了问题,每次我尝试这样做,{{image_list | first.photo.url}我什么也没有收到

任何帮助都将不胜感激

My models.py

class Image(models.Model):
    photo = models.ImageField()
    added_at = models.DateTimeField(auto_now_add=True)
    masseurs = models.ForeignKey(Masseurs, on_delete=models.CASCADE)
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})
视图.py

class Image(models.Model):
    photo = models.ImageField()
    added_at = models.DateTimeField(auto_now_add=True)
    masseurs = models.ForeignKey(Masseurs, on_delete=models.CASCADE)
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})

由于
image\u list
是查询集而不是列表,
|first
将不起作用。但是,您可以使用:

{{ image_list.first.photo.url }}
有关参考,请参阅:

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


你为什么不在风景区做呢

image = Image.objects.filter(masseurs_id=masseurs_id).first()
但如果需要在模板中执行此操作:

{{ image_list.first.photo.url }}

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

的可能重复项在问题中这样的情况下是否也可以使用“slice”的等效项?如果是这样,它看起来会是什么样子(例如,从文档示例{some_list | slice::2}})?您可以在视图中对查询集进行切片,是的<代码>{%with image_list | slice:'0'作为image%}{{{image.photo.url}{%endwith%}我敢打赌,这条路径比使用model方法慢得多。您还可以通过索引
{{image_list.0.photo.url}
访问,因此建议从模型视图获取照片?