我正在制作一个自定义的模板标记,并且我希望能够以任何类型的值传递它。用例如下所示:
{% include_with_args "path_to_template.html" simple_var an_object.foo.bar "A String" %}在评估我的自定义模板代码时,我想要评估simple_var、an_object.foo.bar和"A String",就像Django通常所做的那样。目前我有
these_args = [context[arg_name] for arg_name in self.arg_names]但是,这只适用于变量名(simple_var)。
如何让我的模板像Django一样计算这些字符串?也就是说,如果.foo是一个返回带有"bar"键的字典的函数,那么它应该像预期的那样计算它:an_object.foo()["bar"]。
简而言之:我想对一个表达式求值。如何从自定义模板中执行此操作?
发布于 2012-08-03 10:08:36
这实际上非常简单。而不是:
these_args = [context[arg_name] for arg_name in self.arg_names]执行以下操作:
these_args = [template.Variable(arg_name).resolve(context) for arg_name in self.arg_names]当然,现在arg_name是一个用词不当的词,所以我改变了它,但只是用这种方式来阐明它们之间的区别。
https://stackoverflow.com/questions/11787630
复制相似问题