当前位置: 首页 > 知识库问答 >
问题:

Django,Jinja-使用对象属性动态引用静态图像(slug)

韶浩皛
2023-03-14

请原谅我问错了什么问题,这是我学习姜戈的第二天。

我在数据库中有一个模型,该模型具有以下属性:

   'title': 'Entity title for Entity A',
   'slug': 'entity-a',
   '...': '...'

在我的。html Jinja模板中,我想使用循环加载多个实体。这很管用。但是,我想使用entity.slug引用一些静态加载的徽标。

就像。。。

{% for entity in entities %}
            {{ entity.slug }}
            <img src="{% static 'logos/{{entity.slug}}_50x50.png' %}" alt="" class="mr-2 img-thumbnail" width="50">
{% endfor %}

参见内部IMG标签。其中有{{entity.slug}}。我怎样才能把它放进去,使静态图像将动态加载?

Atm,它正在呈现{{}}请参阅此处

共有1个答案

夏侯朝斑
2023-03-14

一种正确的方法是在entity模型中创建一个属性,并在模板中使用它。像这样:

# models
class Entity(models.Model):
  ...
  
  @property
  def logo_url(self):
    return 'logos/%s_50x50.png' % self.slug

# tpl
<img src="{% static entity.logo_url %}">

但是您应该考虑使用ImageField而不是硬编码,因为它实际上是媒体文件(不是静态的)。

因此,如果您有logo=models.imagefield(...),那么您将很容易地在模板中使用它,例如{{entity.logo.url}}

 类似资料:
  • 我正在尝试使用动态名称访问对象的属性。这可能吗?

  • 我用Java编写代码已经有一段时间了,我理解静态方法和非静态方法之间的区别。但我最近遇到静态对象引用

  • 问题内容: 我正在构建一个API应用程序,该应用程序实质上允许用户构建一个文档,该文档可以按他们想要的方式进行结构化,并将存储在Elasticsearch中。本质上,我为用户提供了一个简单的界面来访问我们的Elasticsearch实例。我试图使实现尽可能简单。到目前为止,这是我要处理的内容。 预期主体的对象: 简单实施: 这可以正常工作,但它在源中包含索引,类型和ID。我真正想做的只是在建立索引

  • 问题内容: 我如何做到这一点: 问题答案: 请改用方括号表示法。 或者,在现代JavaScript中:

  • 问题内容: 我正在尝试使用动态名称访问对象的属性。这可能吗? 问题答案: 有两种方法可以访问对象的属性: 点表示法: 括号符号: 方括号之间的值可以是任何表达式。因此,如果属性名称存储在变量中,则必须使用方括号表示法:

  • 本文向大家介绍php面向对象中static静态属性和静态方法的调用,包括了php面向对象中static静态属性和静态方法的调用的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中static静态属性和静态方法的调用。分享给大家供大家参考。具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用。关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置

  • 模型静态属性 [ ] model 定义一个模型 'use strict'; module.exports = app => { const { STRING, INTEGER, DATE } = app.Sequelize; const Post = app.model.define('post', { id: { type: INTEGER, prima

  • 问题内容: 如何在Django中提供动态生成的图像? 我有一个html标签 链接到此请求处理程序,该请求处理程序创建一个内存中图像 我还计划将请求更改为AJAX,并添加某种缓存机制,但是我的理解是,这不会影响解决方案的这一部分。 问题答案: 我假设您正在使用PIL(Python影像库)。您需要用(例如,如果要提供PNG图像)替换最后一行: 有关更多信息,请参见此处。