Django模板语法错误:无法解析剩余部分:'()'。

30
我试图在Django模板页面中迭代一个字典中的字典。
       {% for (key_o, value_o) in f_values.items() %}
            <tr class="row {% cycle 'odd' 'even' %}">
                {% for (key_i, val_i) in value_o.items() %}
                    <td class="tile ">
                        {{ val_i }} 
                    </td>
                {% endfor %}    
            </tr>
        {% endfor %}

但是出现了错误

TemplateSyntaxError at /tree/branches/
Could not parse the remainder: '()' from 'f_values.items()'

是什么导致了这个错误?

--更新

这是我创建f_values的方式

        columnValues = []
        for idx_o, val_o in enumerate(results['values']):
            columnValues[idx_o] = {}
            for idx_i, val_i in enumerate(val_o):
                columnValues[idx_o][idx_i] = {}
                columnValues[idx_o][idx_i]['value'] = val_i
                name = columnNames[idx_i]
                columnValues[idx_o][idx_i]['name'] = name
                columnValues[idx_o][idx_i]['format'] = {}
                for val_f in formats:
                    if (name == val_f.Header) :
                        columnValues[idx_o][idx_i]['format']['LowerLimit'] = val_f.LowerLimit



data = {
        'f_values': columnValues,             
       }
1个回答

61
你在模板中调用方法时,不需要使用(),你可以直接使用f_values.items。这种表示法适用于列表、元组和函数。
例如,如果你有以下Python值:
    lst = ['a', 'b', 'c']
    di = {'a': 'a'}
    class Foo:
       def bar(self): pass
    foo = Foo()

在你的模板中,你可以像这样访问它们:

    {{ lst.0 }}
    {{ di.a }}
    {{ foo.bar }}

针对您的代码:

      {% for (key_o, value_o) in f_values.items %}
            <tr class="row {% cycle 'odd' 'even' %}">
                {% for (key_i, val_i) in value_o.items %}
                    <td class="tile ">
                        {{ val_i }} 
                    </td>
                {% endfor %}    
            </tr>
        {% endfor %}

如果键名中间有空格怎么办?需要使用什么选择器来使用该键名? - Vishnu Y S
1
@VishnuYS 对于带有空格的键,没有标准解决方案。我建议避免使用空格和连字符,但你也可以查看这个问题以获取一些解决方法:https://dev59.com/EHA85IYBdhLWcg3wCfBZ - Daniel Dinu
嗨,我想在模板中使用user.has_module_perms(package_name)或user.has_perms(perm_list, obj=None),我该如何将参数传递给方法? - Rakesh Mishra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接