如何将参数传递给Django中模板变量的方法?

时间:2009-09-14 00:13:04

标签: django templates

我正在使用lxml库在视图中定义变量(类别)。 lxml提供了一个方法.get来检索自定义属性。我想在模板中使用它,如下所示:

{{ category.get("foo") }} 

我知道使用模板变量时不必使用括号,但是我收到以下错误:

{{ category.get "foo" }}
  

无法解析余数:''foo''来自'category.get“foo”'

我假设我的语法有问题,但谷歌一直没有帮助。 django文档说使用.

查找方法

3 个答案:

答案 0 :(得分:32)

您无法将参数传递给此类可调用属性。在视图中拉取值,或者编写自定义模板标记来执行此操作。

答案 1 :(得分:15)

我同意将逻辑与设计分离的理念,但有一个例外。我目前正在为模型编写get_image(height = xxx,width = xxx)方法。显然,应该由模板设计师决定将图像的大小作为最后一个阶段。虽然我认为正确的做法是写一个自定义标签,但为什么要限制?

答案 2 :(得分:12)

这里我写了一个hack来调用一个函数并传递参数 http://www.sprklab.com/notes/13-passing-arguments-to-functions-in-django-template/