django - 如何在 div 的 html 背景 url 中使用产品图片? Django

标签 django django-models django-templates django-media

我不知道如何在模板中显示产品图像。 图像需要进入 div 的背景 url 内部,不能使用静态,因为这样它就不会形成模型。

HTML

 ....
    {% if products %}
      {% for product in products %}
    
       <div class="product-grid" style="background-image:url({% static 'images/product-1.jpg' %});">
         <div class="inner">
            <p>
               <a href="{% url 'single_product' %}" class="icon"><i class="icon-shopping-cart"></i></a>
               <a href="{% url 'single_product' %}" class="icon"><i class="icon-eye"></i></a>
           </p>
         </div>
      </div>
        {{ product.title }}
        ${{ product.price }}
      {% endfor %}
    {% endif %}
   ....

模型

class Product(models.Model):
    ....
    photo_main = models.ImageField(upload_to='photos/%Y/%m/%d/')
    def __str__(self):
        return self.title

查看

def shop(request):
    products = Product.objects.order_by('-upload_date').filter(is_published=True)

    context = {'products': products}
    return render(request, 'shop/shop.html', context)

设置

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'ecom/static')
]

如果您知道该怎么做,请给我一个答案?查看图片了解更多信息

最佳答案

存储在ImageField中的文件是媒体文件,而不是静态

它们由 MEDIA_ROOTMEDIA_URL 设置管理,并且必须在如下模板中引用:

style="background-image:url('{% product.photo_main.url %}');"

注意 {} 周围的额外单引号

关于django - 如何在 div 的 html 背景 url 中使用产品图片? Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66834583/

相关文章:

Django 1.3 日志记录 : 500 errors are not logged

python - 使用 Python/Django 保存/导出文件时打开标准文件浏览器窗口

Django ManyToManyField 错误

python - Django反向外键导致重复查询

Django查询: WHERE field LIKE '10__8__0__' ?怎么写

django - 使用 forloop.counter0 在 Django 中索引数组

python - 可以在 Django {% ifequal %} 表达式中使用带有查找的变量吗?

python - 通过 ManyToManyField = Value 订购一个 Django 查询集

django - 如何使用Django 1.3日志记录字典配置来设置SysLogHandler

python - Django的模板语言不能安全的处理dict