2014-07-15 94 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

相關問題