Вывод изображений из моделей в бутстрап слайдер

Необходимо в классах "carousel-item active", "carousel-item" выводить по одному img, привязанный к Slider.

Я присваиваю 3 объекта img к 3 объектам Slider через админ панель Django и вывожу в index.html

В итоге получаю такую картину:

введите сюда описание изображения

models.py

class Slider(models.Model):
    name = models.CharField('Название', max_length=250)


class PostImage(models.Model):
    img = models.ImageField('Изображение', upload_to='photos/%Y/%m/%d/', null=True)
    slider = models.ForeignKey(Slider, related_name='Images', on_delete=models.SET_NULL, null=True, blank=True)

views.py

def main(request):
    slider = Slider.objects.order_by('-id')
    return render(request, 'main/index.html', {'slider': slider})

index.html

{% for slider in slider %}
{% for item in slider.Images.all %}
{% if item.img %}
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
        <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner">
        <div class="carousel-item active">
            <img class="d-block w-100" style="max-height: 700px" src="{{ item.img.url }}"
                 alt="First slide">
        </div>
        <div class="carousel-item">
            <img class="d-block w-100" style="max-height: 700px" src="{{ item.img.url }}"
                 alt="Second slide">
        </div>
        <div class="carousel-item">
            <img class="d-block w-100" style="max-height: 700px" src="{{ item.img.url }}"
                 alt="Third slide">
        </div>
    </div>
    <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>
{% endif %}
{% endfor %}
{% endfor %}

так у вас и выводит три слайдера по три img я не спец, но нужно примерно следующее

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
        {% цикл %}
     <li data-target="#carouselExampleIndicators" data-slide-to="{% id_slaider %}" class="active"></li>
        {% конец_цикл %}
    </ol>
    <div class="carousel-inner">
        {% цикл %}
        <div class="carousel-item active">
            <img class="d-block w-100" style="max-height: 700px" src="{{ item.img.url }}"
                 alt="{% img_name %} slide">
        </div>
        {% конеццикл %}
    </div>

    <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>

Нашел решение. Пожалуй, оставлю здесь, может кому понадобится.

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner">
        <div class="carousel-item active">
            <img class="d-block w-100" style="max-height: 700px" src="{% static 'main/img/welcome.jpg' %}"
                 alt="First slide">
        </div>
        {% for slider in slider %}
        {% for item in slider.Images.all %}
        <div class="carousel-item">
            <img class="d-block w-100" style="max-height: 700px" src="{{ item.img.url }}"
                 alt="Second slide">
            <div class="carousel-caption d-none d-md-block">
                {% if slider.title %}
                <h5 style="color: #0088c2">{{ slider.title }}</h5>
                {% endif %}
                {% if slider.text %}
                <p><a style="color: white;" href="{% url 'news' %}">{{ slider.text }}</a></p>
                {% endif %}
            </div>
        </div>
        {% endfor %}
        {% endfor %}
    </div>
    <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>

введите сюда описание изображения

Вернуться на верх