django - django中的模板变量
问题描述
当我执行 {{ pair_name.8 }} 它有效时,我正在尝试使用模板变量来访问模板字典
但是 {% 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)
在视图中处理这个不仅更优雅,而且通常也更有效,因为模板引擎在遍历数据结构时通常效率较低。
推荐阅读
- javascript - 使用 VueJS 的 WebRTC:为什么远程视频没有播放?
- reactjs - 引用 mapStateToProps 中的所有实体类型是否对性能有害?
- lua - lua中的local name = value或0是什么?
- windows-10 - 如何在 Windows 10 上的 Git bash 上为标准输入注入 EOF?
- smlnj - 如何检查一个值是否存在于 smlnj 的列表中
- ios - 从 plist 中检索多行
- javascript - 在 Ionic 3 的某些页面上启用或禁用侧边菜单的正确方法?
- r - 仅将字符串转换为 R 中数值的日期
- ruby - 安装 unf_ext (0.0.7.4) 时出错,Bundler 无法继续
- iis - 如何确定在 Azure App Service 反向代理中向下游传递的标头?