如何在Python Django模板中将函数调用结果赋值给变量
Django模板自定义标签返回值赋值方法
你原来的写法无法生效,是因为{% with %}标签仅支持直接给变量赋值,不支持在赋值表达式中执行带参数的自定义标签调用。
你可以按照以下方案处理:
- 如果你可以修改
path_parts标签的源码:
Django 1.9及以上版本的simple_tag原生支持as赋值语法,只需要确保你的标签是用@register.simple_tag装饰注册的,就可以直接用如下写法调用,将返回值赋值给变量:
赋值完成后你可以正常使用{% path_parts request.get_full_path as paths %}paths变量访问返回的字典内容,比如{{ paths.xxx }}。 - 如果你无法修改
path_parts标签的源码:
你可以自行实现一个极简的自定义工具标签,专门用于接收目标标签、调用参数和变量名,执行调用后将返回值塞进模板上下文即可完成赋值。
内容的提问来源于stack exchange,提问作者Gábor DANI
相关产品推荐
相关产品推荐

