Вернуть первое изображение из модели, используя тег '{{value |первый}}' - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть список фотографий, из которых я хотел бы всегда быть первым, чтобы добавить в качестве фотографии профиля.Я нашел следующий тег ' | first ' в документации django, но у меня возникают проблемы с добавлением его в моей ситуации, каждый раз, когда я пытаюсь сделать это таким образом, '{{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)

просмотров.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 голосов
/ 07 февраля 2019

Почему бы вам не сделать это в представлении?

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

Но если вам нужно сделать это в шаблоне:

{{ image_list.first.photo.url }}

Это потому, что image_listнабор запросов, так что вы можете получить первый элемент набора запросов с синтаксисом .first ()

0 голосов
/ 07 февраля 2019

Поскольку image_list является QuerySet, а не списком, |first не будет работать.Однако вы можете использовать:

{{ image_list.first.photo.url }}

Для справки см .: Доступ к вызовам методов

Большинство вызовов методов, связанных с объектами, также доступны из шаблонов.Это означает, что шаблоны имеют доступ к гораздо большему, чем просто атрибуты класса (например, имена полей) и переменные, передаваемые из представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...