django - 如何在 div 的 html 背景 url 中使用产品图片?姜戈
问题描述
我不知道如何在模板中显示产品图像。图像需要进入 div 的 background-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_ROOT
和MEDIA_URL
设置管理,必须在模板中引用,如下所示:
style="background-image:url('{% product.photo_main.url %}');"
注意 {} 周围的附加单引号
推荐阅读
- immutability - dataclasses.dataclass freeze=True 的 Enthought Traits 等价物?
- ruby-on-rails - 如何将名为 status 作为字符串的新列添加到 ruby on rails 中的现有表中?
- python-3.x - 通过 PCA 对测试集进行相同的特征转换失败
- gradle - 如何在考虑相对路径的情况下使用多项目设置 settings.gradle 和 build.gradle
- flutter - 如何从对象定义 SharedPreferences?
- c# - 发布 asp.net Web 应用程序时目标发布临时路径太长(超过 248 个字符)
- ruby-on-rails - 如何在 ruby on rails 脚本中使用代理服务器?
- java - 是否可以在不引用特定类的情况下创建对象,如下所示?
- mysql - 如何在 dolphindb 数据库中使用 ej 函数连接多个表
- python - 使用托管标识将 Function App 连接到 CosmosDB