django 包含标签 kwargs 错误说“函数需要 2 个参数”

Posted

技术标签:

【中文标题】django 包含标签 kwargs 错误说“函数需要 2 个参数”【英文标题】:django inclusion tag kwargs error says "function takes 2 arguments" 【发布时间】:2012-09-11 04:16:40 【问题描述】:

我已经写了包含标签,它需要上下文和 *args 和 **kwargs

@register.inclusion_tag('template.html', takes_context=True)
def my_tag(a, b, *args, **kwargs):
    print 'Kwargs: '
    return .....

模板:

  % my_tag 1 1 2 page=10 %

Error message:
Request Method:     GET
Request URL:    http://localhost:8000/
Django Version:     1.3.1
Exception Type:     TemplateSyntaxError
Exception Value:    

my_tag takes 2 arguments

我的代码有什么问题?

【问题讨论】:

【参考方案1】:

是的,我发现了问题,问题 *args 和 **kwargs 在 Django 1.4 中实现,但我在 Django 1.3.1 中尝试了此功能,这就是它显示此类错误的原因

为了更清楚,请查看 Django 1.4 发行说明。 Django1.4 release notes

【讨论】:

【参考方案2】:

既然你放了takes_context=True,那么函数的第一个参数一定是context

【讨论】:

以上是关于django 包含标签 kwargs 错误说“函数需要 2 个参数”的主要内容,如果未能解决你的问题,请参考以下文章

Django-ORM

Django ORM操作

django之单表操作

Django ORM相关操作

Django--ORM相关操作

Django ORM常用操作