我试图使用模板变量访问模板字典当我执行{{pair_name。8}}
but {% with xx=8 %}{{pair_name。Xx}}{% endwith %}不工作,请帮助
我正在尝试使用模板变量访问模板字典。
Django模板语言被故意限制为防止下标、函数调用(带参数)等。这是为了阻止人们在模板中编写业务逻辑。
您可以实现一个自定义模板过滤器来执行下标查找,或者使用Jinja模板引擎。但更优雅的方法可能是改变视图,并以更容易访问的方式准备逻辑。
例如,如果您需要视图中的xx
-th项,您可以执行以下映射:
def some_view(request):
pair_names = [] # some data
xx = 8
data = [pair_name[xx] for pair_name in pair_names]
context = {'pair_names': data}
return render(request, 'some_template.html', context)
在视图中处理这个不仅更优雅,而且通常更有效,因为模板引擎在遍历数据结构时效率通常较低。
@Peace无论如何-只是我的2美分-模板应该尽可能愚蠢,这意味着尽量避免从模板到视图的沉重逻辑。理想情况下,您还应该使视图保持轻量级。没有太多的处理。视图背后的概念是简单的委托。因此,将职责划分到正确的层是非常重要的。