嗨,我正在用appengine/Python做一个简单的网站。我遇到了一些Django模板问题。在
简而言之,我想用“ShortName”来访问“LongName”。在
源代码:
LongName={"so":"stackoverflow","su":"superuser"}
ShortName=['so','su']
然后我将这两个参数传递给模板。在
在模板中我写道:
^{pr2}$输出为:
so stands for, su stands for
没有给出错误。LongName.aname
不起作用。在
我不知道怎么了。在
这是在尝试访问}。在
LongName['aname']
,而不是{您可能需要编写一个自定义模板标记/过滤器才能使其工作。This Django bug(标记为WONTFIX)有一个简单的实现:
你会用的
^{pr2}$在adding it to your app之后(这个问题的答案说明了如何在GAE上实现)。在
您还可以通过传入预先生成一个要在视图中循环的变量
如果你真的不想添加一个模板标签,那也没那么糟糕!你只需要做一个文件!:)或传入一个额外的变量,Vic's approach将允许您在不接触Python文件的情况下执行此操作。正如他所提到的,它涉及到很多无意义的迭代,但是对于小列表来说,它可以很好地工作。在
Django模板有一个缺点。我以前也遇到过同样的情况。您要做的是迭代LongName中的所有键,并检查要查找的键是否与ShortName匹配。给你:
它效率低下,本质上是一个没有意义的O(n^2)机制。然而,在纯Django模板中,没有更好的方法通过变量名引用dict的条目。在
相关问题 更多 >
编程相关推荐