自定义模板标记args和kwargs解析器

时间:2013-02-16 00:01:32

标签: django django-templates

Django附带了一些很棒的工具来制作自定义模板标签。

注册simple_tag和assignment_tag都会解析传入的令牌内容,并将它们转换为args, kwargs正确解析为其引用(比如传入一个变量)。

是否有一种简单的方法可以将此行为添加到常规标记中?

我需要使用parser对象,所以我需要使用常规标记,但似乎我正在浏览大量代码来重现args, kwargs解析器。

@register.tag(name='snippet')
def snippet_with_defaults(parser, token):
    bits = token.split_contents()[1:]
    bits # bits needs to be converted to args, kwargs easily

我需要一个功能如下的标签:

{% snippet foo=bar bar=baz %}
This is a glorious django template tag!
{% endsnippet %}

看起来这是一个常见的问题(标签参数的args,kwargs解析器),它应该有一个django片段或其他东西!

2 个答案:

答案 0 :(得分:5)

我找到了一个可以帮助你的片段。

Tag that parses args and kwargs

答案 1 :(得分:0)

您也可以在新的Django中使用它。

from django import template

template.base.token_kwargs(bits,