python - 将变量传递给自定义 Django 模板标签

标签 python django django-templates

我正在为我的 Django 应用程序添加一个自动完成功能。

HTML

<script type="text/javascript"> 
            var a = {% get_fields_task_name %}
            $( "#auto_task_name" ).autocomplete({
              source: a           
            });

查看

def get_fields_task_name():    
    task = Task.objects.all()    
    output = []

    for e in task:
        output.append(e.name)

    x = json.dumps(output)
    return x
get_fields_task_name = register.simple_tag(get_fields_task_name)

我需要将参数传递给 get_fields_task_name,如何在模板而不是 {% get_fields_task_name %} 中执行此操作?

最佳答案

这完全取决于参数是什么,但如果它是您可以在模板渲染时从单个变量中获取的东西,只需将它作为参数添加到函数中 (see the docs for simple_tag)。

例如:

@register.simple_tag
def get_fields_task_name(kind):
    tasks = Task.objects.filter(kind=kind)
    return json.dumps([e.name for e in tasks])

(使用列表理解使函数体更短更清晰,并使用更好的装饰器语法)。

然后你可以将模板中的相关行更改为

var a = {% get_fields_task_name some_variable.kind %};

关于python - 将变量传递给自定义 Django 模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669732/

相关文章:

python - 社交网站授权

Django:如何显示我自己的动态创建的字段

python - 无法在 Django 模板 html 中使用过滤器

python - 如何在django中执行内部连接

Python Django查询错误: Can't convert 'method' object to str implicitly

javascript - 如何在 Django 模板中连接内容 block ?

python - 调用 xmlrpclib.ServerProxy 等类上的任意方法

Python:从视频中截取屏幕截图

python - 扭曲的 TCP 到 IRC

python - 在python中找到最小值的行和列?