您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Django模板中使用前导下划线访问dict元素

5b51 2022/1/14 8:22:51 python 字数 2428 阅读 587 来源 www.jb51.cc/python

我试图使用以下划线字符开头的键来访问dict的元素.例如: my_dict = {“_ source”:’xyz’} 我试图在Django模板中访问它们.显然我意识到你不能从Django模板访问下划线的python变量(因为它们在Python中被认为是私有的),但这是一个dict对象,其中任何不可变对象都是有效的键. 我无法使用{{my_dict._source}}在Django模板中访问上述di

概述

my_dict = {“_ source”:’xyz’}

我试图在Django模板中访问它们.显然我意识到你不能从Django模板访问下划线的python变量(因为它们在Python中被认为是私有的),但这是一个dict对象,其中任何不可变对象都是有效的键.

我无法使用{{my_dict._source}}在Django模板中访问上述dict,所以我假设Django正在阻止它.那是准确的吗?

我有点希望Django用变量开始做一些事情,这些变量以下划线开头,就像仍在进行dict查找(第一件事是应该尝试)但是拒绝进行属性查找,方法调用和列表索引查找,因为强调的前缀变量将是无效的.我很快就失去了希望.

为了记录,我知道有人会建议只更改dict,但这实际上是在ElasticSearch实例上执行REST API请求时rawes库返回的多级字典.

Variable names must consist of any letter (A-Z),any digit (0-9),an underscore (but they must not start with an underscore) or a dot.

但你可以轻松写一个custom template filter来模仿字典的get方法

@register.filter(name='get')
def get(d,k):
    return d.get(k,None)

{{ my_dict|get:"_my_key" }}

总结

以上是编程之家为你收集整理的在Django模板中使用前导下划线访问dict元素全部内容,希望文章能够帮你解决在Django模板中使用前导下划线访问dict元素所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶