如何在 Django 模板中使用 __repr__ 方法?

Posted

技术标签:

【中文标题】如何在 Django 模板中使用 __repr__ 方法?【英文标题】:How to use __repr__ method within django template? 【发布时间】:2013-11-24 04:51:44 【问题描述】:

例如嵌套循环中有一个对象:

 % for fieldset in inline_admin_form %
                    % for line in fieldset %
                      % for field in line %

                        % if field.is_hidden %  field.field  % endif %
                      % endfor %
                    % endfor %
                  % endfor %
              % endif %

现在我想查看field.field的类名和一些信息,所以我用field.field.__repr__()代替field.field

但是,django模板在更改后抱怨它:

Variables and attributes may not begin with underscores: 'field.field.__repr__'

有人知道吗?有没有更好的方法来调试 django 模板中的变量? (我尝试了% debug %,但当我想检查嵌套循环中的变量时发现它很糟糕......)

【问题讨论】:

***.com/questions/6571649/…的可能重复 【参考方案1】:
 value|stringformat:'r' 

使用字符串 % 运算符样式格式和使用 repr()r 格式

【讨论】:

【参考方案2】:

您可以轻松编写一个模板过滤器,让您可以执行 var|asrepr 。请参阅文档,但它看起来像这样:

@register.filter
def asrepr(value):
    return repr(value)

【讨论】:

以上是关于如何在 Django 模板中使用 __repr__ 方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在模板中显示 Django '__all__' 表单错误?

我们如何获得 __repr__() 的默认行为?

django __unicode__() - 我如何在模板中调用此方法

如何直接使用 `str.format` 作为 `__repr__`?

如何使用 __repr__ 从中创建新对象?

如何在 django 模板中获取类