django模版中带参数调用任意函数的方法

原文地址:http://www.sharejs.com/codes/python/7616


django模版中带参数调用任意函数的方法


#template_filters.py

@register.filter
def template_args(instance, arg):
"""
stores the arguments in a separate instance attribute
"""
if not hasattr(instance, "_TemplateArgs"):
setattr(instance, "_TemplateArgs", [])
instance._TemplateArgs.append(arg)
return instance

@register.filter
def template_method(instance, method):
"""
retrieves the arguments if any and calls the method
"""
method = getattr(instance, method)
if hasattr(instance, "_TemplateArgs"):
to_return = method(*instance._TemplateArgs)
delattr(instance, '_TemplateArgs')
return to_return
return method()

# 在模版里面按照下面的方法调用
{{ instance|template_args:"value1"|template_args:"value2"|template_args:"value3"|template_method:"test_template_call" }}

# 输出结果
value1, value2, value3
#该代码片段来自于: http://www.sharejs.com/codes/python/7616
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值