gpt4 book ai didi

python - 在 Jinja2 中使用 getattr 给我一个错误(jinja2.exceptions.UndefinedError : 'getattr' is undefined)

转载 作者:太空狗 更新时间:2023-10-29 20:42:00 24 4
gpt4 key购买 nike

使用常规 python,我可以获得 getattr(object, att) 但在 Jinja2 中,我得到:

jinja2.exceptions.UndefinedError
jinja2.exceptions.UndefinedError: 'getattr' is undefined

我该如何使用它?

最佳答案

Jinja2 不是 Python。它使用类似 Python 的语法,但没有定义相同的内置函数。

改用订阅语法;您可以在 Jinja2 中交替使用属性和订阅访问:

{{ object[att] }}

或者您可以使用 attr() filter :

{{ object|attr(att) }}

来自Variables section模板设计器文档:

You can use a dot (.) to access attributes of a variable in addition to the standard Python __getitem__ “subscript” syntax ([]).

The following lines do the same thing:

{{ foo.bar }}
{{ foo['bar'] }}

并在同一部分的更下方,解释实现细节:

foo['bar'] works mostly the same with a small difference in sequence:

  • check for an item 'bar' in foo. (foo.__getitem__('bar'))
  • if there is not, check for an attribute called bar on foo. (getattr(foo, 'bar'))
  • if there is not, return an undefined object.

关于python - 在 Jinja2 中使用 getattr 给我一个错误(jinja2.exceptions.UndefinedError : 'getattr' is undefined),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com