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

mep*_*pum 23 django templates

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

{{ category.get("foo") }} 
Run Code Online (Sandbox Code Playgroud)

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

{{ category.get "foo" }}
Run Code Online (Sandbox Code Playgroud)

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

我假设我的语法有问题,但谷歌一直没有帮助.django文档说通过使用a来查找方法.

Ned*_*der 32

您不能将参数传递给这样的可调用属性.在视图中拉取值,或编写自定义模板标记来执行此操作.


小智 15

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


小智 12

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