【发布时间】:2020-02-02 05:05:15
【问题描述】:
我已使用 get_context_data() 方法将以下模型的对象添加到我的视图中。
models.py:
class Icon(models.Model):
icon_name = models.CharField(max_length=100, default='iconset')
icon = models.ImageField(upload_to='machine_icon/', null=True, blank=True)
def __str__(self):
return str(self.icon_name)
views.py
class MachineSorter(DetailView):
model = MachineCount
template_name = 'brands/machines.html'
def get_context_data(self, **kwargs):
context = super(MachineSorter, self).get_context_data(**kwargs)
context['icon'] = Icon.objects.all()
return context
我可以轻松地循环浏览图标并像这样显示它们:
{% for obj in icon %}
<img src="{{ obj.icon.url }}">
{% endfor %}
但我不想遍历它们,我只想在需要的地方访问单个图标图像,例如:
<img src="{{ icon.name.url }}">
...或类似的东西。在视图中使用附加上下文时,我看到的示例都使用循环。我在这里想念什么?任何帮助将不胜感激。
【问题讨论】:
-
查询集是图标的集合,因此它包含零、一个或多个项。因此,获得这样的属性没有多大意义。如果集合为空,该怎么办?还是包含多个项目?
-
好的,谢谢。不过,也许我没有问清楚。我要问的是是否可以使用 django 模板标记语言直接调用(显示)我的查询集中的一个图标,而不是如图所示的循环。
标签: django-templates django-views django-queryset