LINUX.ORG.RU

HTML, Jinja и изображения с БД

 , , ,


0

1

В обшем есть данная тема использующая Bootstrap, в ней есть данная часть кода:

              <div class="carousel-item"><img class="img-fluid" src="/static/images/4.jpg" alt="Second slide"/>
                <div class="carousel-caption d-none d-md-block"> </div>
              </div>
              <div class="carousel-item"><img class="img-fluid" src="/static/images/5.jpg" alt="Third slide"/>
                <div class="carousel-caption d-none d-md-block"> </div>
              </div>

И если это все смотреть уже в браузере то там есть слайды, я решил сделать так:
            <div class="carousel-inner" role="listbox">
                {% if latest_tovar_list %}
              <ul>
                  {% for tovar in latest_tovar_list %}
                    <div class="carousel-item active"><img class="img-fluid" src="{{tovar.image.url}}" alt="First slide"/>
                  {% endfor %}
                  <div class="carousel-caption d-none d-md-block"> </div>
              </div>
              </ul>
              {% else %}
              <p>Ничего нету :(</p>
              {% endif %}

Но это не работает как надо, если в БД есть всего 1 «tovar», то отображается все как надо, а вот если больше 1, то эти слайды не работают, изображения располгаются друг под другом.
Сам код на питоне:
def index(request):
    latest_tovar_list = Product.objects.order_by('-name')[:5]
    context = {'latest_tovar_list': latest_tovar_list}
    return render(request, 'mainPage/index.html', context)

Объясните мне, как заставить это все работать?

★★

У тебя дивы неправильно закрыты.

hippi90 ★★★★ ()

latest_tovar_list

А чего не posledniy_tovar_spisok? Непоследовательно, как-то.

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

Сейчас только заметил,уже закрыл по правильному,но это всё равно размещает изображение не так как надо,опять же просто столбец из изображений

playX ★★ ()
Ответ на: комментарий от playX

Всё равно неправильно дивы закрыты. Поставь себе нормальный редактор, который тебе будет блоки выделять, иначе ты так и будешь искать, где накосячил.

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

А какой все же лучше? Я на данный момент юзаю VSCode

playX ★★ ()
Ответ на: комментарий от playX

И у меня vscode, он мне показывает, что у тебя косяк с дивами. У тебя есть лишний закрывающий тег на 149 строке.

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

В общем исправил, как я понял надо как то сортировать изображения и показывать от самой новой картинки к старой, можно узнать как это сделать в самом jinja?

playX ★★ ()
Ответ на: комментарий от playX

Без понятия, с jinja не работал. Но вообще я бы такие вещи не делал в шаблонах, это нужно делать в модели.

hippi90 ★★★★ ()

Ордер деск по айди делай а не о имени

ggrn ★★★★★ ()
Ответ на: комментарий от ggrn

Делаю так:

    latest_tovar_list = ProductView.objects.order_by('id')[:3]

А на странице почему то два первых изображения повторяются, а все остально вроде как нормально работает

playX ★★ ()
Ответ на: комментарий от playX

достаточно сгенеренный код глянуть в мозилле она подсветит косяк.

demrnd ()

изображения располгаются друг под другом

Потому что ты всем ставишь класс active. Его нужно оборачивать в:

{% if forloop.first %} active {% endif %}
gruy ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.