python - 如何显示来自 Django CharField 的图像?
问题描述
我正在建立一个电子商务网站,并且有一系列图像可用作每个项目的照片。我遇到的问题是在 html 中显示选定的照片。照片没有上传,而是存储在静态文件夹中
这是我的模型
class Item(models.Model):
PHOTO_CHOICES = [
('Fishing Rod', "fishing_rod.png"),
('Fishing Net', 'fishing_net.png'),
('Tackle Box', 'tackle_box.png'),
('Lure', 'lure.png'),
('Line', 'line.png'),
('Hook', 'hook.png'),
]
name = models.CharField(max_length=25)
price = models.DecimalField(max_digits=9, decimal_places=2)
description = models.CharField(max_length=140)
photo = models.CharField(max_length=25, choices=PHOTO_CHOICES, default='Fishing Rod')
这是显示它的html
{% for item in items %}
<div class="col-lg-4 col-md-6 mb-4">
<div class="card h-100">
<a href="{% url 'item-detail' item.id %}"><img class="card-img-top" src="{% static 'Photos/{{ item.photo }}' %}" alt="" id="photo"></a>
<div class="card-body">
<h4 class="card-title">
<a href="{% url 'item-detail' item.id %}">{{ item.name }}</a>
</h4>
<h5>${{ item.price }}</h5>
<p class="card-text">{{ item.description }}</p>
</div>
<div class="card-footer">
<small class="text-muted">★ ★ ★ ★ ☆</small>
</div>
</div>
</div>
{% endfor %}
这是它当前显示的内容
它应该看起来像这样
解决方案
这个:
<a href="{% url 'item-detail' item.id %}">
<img
class="card-img-top"
src="{% static 'Photos/{{ item.photo }}' %}"
alt="" id="photo">
</a>
调用存储在数据库中的值,它是选择元组中的第一个值。
<a href="{% url 'item-detail' item.id %}">
<img class="card-img-top"
src="{% static 'Photos/{{ item.get_photo_display }}' %}"
alt=" ^^^^^^^^^^^^^^^^^^^^^^"
id="photo">
</a>
呈现元组中的第二项:显示值。
但是,这不起作用,因为我们不是在 HTML 中,而是在标签的一部分,所以最简单的使用方法是get_static_prefix
:
<a href="{% url 'item-detail' item.id %}">
<img class="card-img-top"
src="{% get_static_prefix %}Photos/{{ item.get_photo_display }}"
alt=" ^^^^^^^^^^^^^^^^^^^^^^"
id="photo">
</a>
推荐阅读
- angular - 如何知道 ImageSource 是 jpg 还是 png 文件
- java - 如何获得 KieSession 所需的所有全局变量?
- amazon-web-services - 好像每个容器实例不能放置三个以上的任务?
- r - 怎么修 ”'。' 使用 randomForest 函数时,公式中没有“数据”参数?
- python - Python + Selenium - 无法点击元素
- jquery - VueJS在挂载函数中调用ajax后未设置属性
- c# - Linq 从数据库中过滤结果
- java - 我在 Hibernate 中使用 BigDecimal 类获取精确数值时遇到问题
- enums - 如何使用 automapper 映射使用不同大小写的 2 个枚举
- excel - 用一行代码隐藏所有自动筛选下拉菜单