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

时间:2013-11-12 06:30:45

标签: python django django-templates

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

 {% 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 %}但是当我想在嵌套循环中检查一个变量时发现它很糟糕。)

2 个答案:

答案 0 :(得分:12)

{{ value|stringformat:'r' }}

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

答案 1 :(得分:3)

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

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