Найти - Пользователи
Полная версия: Обьединение циклов в шаблоне.
Начало » Python для новичков » Обьединение циклов в шаблоне.
1
Centner
Передаю в шаблоне ссылки на видео:
 {% for video in movie.episodes_set.all %}
<a href="" onclick="player.src({src:'{{ video.video.url }}'})"><img src="{% static 'img/abc.jpg' %}"></a>
{% endfor %}

Но не хочу вручную делать постеры к ним. Просто вытягиваю рандомный кадр и сохраняю рядом с видеофайлом с названием “видео”.jpg

Теперь надо передать постеры в шаблон (вместо “static ‘img/abc.jpg’” выше).

Беру queryset со ссылками на видео и заменяю там расширение на jpg
 class PosterList:
    def get_posters(self):
        queryset = Episodes.objects.all()
        res = []
        for poster in queryset:
            res.append(f"{str(poster.video).split('.')[0]}.jpg")
        return res

И тут получается затык - у меня общая строка в шаблоне но два цикла:

 <a href="" onclick="player.src({src:'{{ ссылка }}'})"><img src="{{ постер }}"></a>
{% for video in movie.episodes_set.all %}
ссылка
{% endfor %}
{% for poster in view.get_posters %}
постер
{% endfor %}

Есть решение для подобной конструкции?

Ок, но возможно у меня неправильно продуман вывод в контекст.
Я ведь могу в своем классе возвращать и queryset с ссылками на видео и ссылку на постер.

 class PosterList:
    def get_posters(self):
        queryset = Episodes.objects.all()
        res = []
        for poster in queryset:
            res.append(f"{str(poster.video).split('.')[0]}.jpg")
        return res, queryset

Получается они в одном цикле - то что мне и надо.
Только как мне тогда обратится к ним в шаблоне?
ZerG
что возвращает queryset
да и модель покажи
Centner
 class Episodes(models.Model):
    name = models.CharField("Название эризода", max_length=100)
    desc = models.TextField("Описание")
    url = models.SlugField(unique=True)
    video = models.FileField(upload_to="episodes/", blank=True)
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE)

Список обектов-эпизодов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB