Как передать переменную django в кавычки? - PullRequest
0 голосов
/ 05 октября 2019

Я хотел бы изменить фотографию на ползунках, и для этого я создал модель SliderImage, в index.html я хочу вытащить изображения с помощью цикла, но он использует для меня незнакомый тег и попытался передатьпеременная в кавычках внутри STATIC, но безрезультатно, я получаю это

/ static /% 7B% 7B% 20slider.get_absolute_image_url% 20% 7D% 7D "style =" background-image: url ("/static/%7B%7B%20slider.get_absolute_image_url%20%7D%7D");">

index.html

{% for slider in slider %}
    <div class="hs-item set-bg" data-setbg="{% static '{{ slider.get_absolute_image_url }}' %}">
        <div class="container">
            <div class="row">
                <div class="col-xl-6 col-lg-7 text-white">
                    <span>New Arrivals</span>
                    <h2>denim jackets</h2>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum sus-pendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis. </p>
                    <a href="#" class="site-btn sb-line">DISCOVER</a>
                    <a href="#" class="site-btn sb-white">ADD TO CART</a>
                </div>
            </div>
            <div class="offer-card text-white">
                <span>from</span>
                <h2>$29</h2>
                <p>SHOP NOW</p>
            </div>
        </div>
    </div>
{% endfor %}

models.py

from django.conf import settings
from django.db import models

class SliderImage(models.Model):
    img = models.ImageField(upload_to='media/slider_photo/', verbose_name='Photo')
    @property
    def get_absolute_image_url(self):
        return "{0}{1}".format(settings.MEDIA_URL, self.img.url)

    def __str__(self):
        return "{}".format(self.img)

views.py

def index(request):
    slider = SliderImage.objects.all()
    return render(request, 'main/index.html', {'slider': slider})

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Вы не должны использовать {{ внутри {% блоков. Так что в вашем случае:

data-setbg="{% static slider.get_absolute_image_url %}">

Но это, вероятно, не сработает, потому что get_absolute_url обычно возвращает абсолютный URL , что означает, что вы не должны использовать static здесь:

data-setbg="{{ slider.get_absolute_image_url }}">
0 голосов
/ 05 октября 2019

Вы загружаете изображение в мультимедийную папку, а не в статическую. В вашем index.html это должно быть вместо:

data-setbg="{{ slider.get_absolute_image_url }}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...