我想更改滑块上的照片,为此,我在index.html中创建了SliderImage模型,我想使用循环来拉出图片,但是它对我使用了一个陌生的标签,并试图通过变量位于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})
答案 0 :(得分:1)
您不应该在{{
块内使用{%
。因此,在您的情况下:
data-setbg="{% static slider.get_absolute_image_url %}">
但是这可能不起作用,因为get_absolute_url
通常返回绝对URL ,这意味着您不应该在这里使用static
:
data-setbg="{{ slider.get_absolute_image_url }}">
答案 1 :(得分:0)
您正在将图像上传到媒体文件夹中,而不是静态的。 在您的index.html中,应该改为:
data-setbg="{{ slider.get_absolute_image_url }}">