2014-07-15 98 views
0

我有一个PY文件的代码:Django的1.6.5:__init __()得到了一个意想不到的关键字参数 'legacy_view_name'

class URLSystemNode(URLNode): 
    ... 
    def render(self, context): 
    ... 
    if not self.legacy_view_name: 
     view_name = view_name.resolve(context) 
    ... 
    ... 
def url_system(parser, token): 
    ... 
    return URLSystemNode(view_name, args, kwargs, asvar, legacy_view_name=True) 

这在Django 1.4.5工作得很好。我已经迁移到Django的1.6.5后,我收到了一个错误:

__init__() got an unexpected keyword argument 'legacy_view_name' 

该行导致这就是:

return URLSystemNode(view_name, args, kwargs, asvar, legacy_view_name=True) 

问:可能是有人可以帮我找出原因在Django 1.6.5中有错误?

URLSystemNode没有__init__函数。可能是Django 1.6.5必须的吗?

编辑>解决方案:解决方案来自丹尼尔。只需从代码中删除legacy_view_name,因为新的url格式是唯一可接受的格式。

+0

URLNode来自:/lib/python2.6/site-packages/django/template/defaulttags.py – Oleg

回答

4

legacy_view_name是引入的一个参数,用于处理从旧的{% url view_name %}语法到新的{% url 'view_name' %}的移动。由于后者现在是唯一被接受的语法,所以这个论点已经被抛弃了。只需将其从该行删除。

+0

非常感谢Daniel。我花了一天的时间寻找解决方案。我是Django的新手,你的回答实际上解决了这个问题。 – Oleg

相关问题