2011-09-29 63 views
0

時遇到錯誤,試圖按照Django-Registration & Django-Profile, using your own custom formCreating a Django Registration Form by Extending Django-Registation Application中提供的答案來擴展django註冊表單。我下面的代碼添加在url.py 擴展Django註冊:在設置url.py

url(r'^accounts/register/$', register, {'backend': 'registration.backends.default.DefaultBackend','form_class': UserRegistrationForm}, name='registration_register'), 
(r'^accounts/', include(regUrls)), 

但現在每當我訪問http://localhost:8000/accounts/register/正在以下錯誤

寄存器()得到了一個意想不到的關鍵字參數 'form_class'

請幫我一把。爲什麼我得到這個錯誤?我瞪了很多,但仍然找不到解決方案。

回答

1

當您訪問頁面時,urls.py條目中的字典將作爲關鍵字參數傳遞給視圖函數registerregister沒有關鍵字參數form_class

如果register您的第一個鏈接指的是從第二個register開始,第一個鏈接是錯誤的。因爲register不接受該關鍵字arg。 One answer似乎定義不同的註冊方法,但我認爲這可能是別的東西(?)

如果你明白什麼是form_class應該傳遞給,你可以只在kwarg添加到register手動過。

+0

感謝戴夫,正如我所說我只是跟着我提供上面的帖子,並在那裏他們給了這樣的網址。對django來說,這是非常新鮮的東西,因此對於需要做什麼感到困惑。那麼你能告訴我如何解決這個問題嗎?謝謝 – swaroop

+0

@swaroop抱歉,如果我不清楚。實際的*問題是django正在調用'register(request,backend = registration.backends.default.DefaultBackend,form_class = UserRegistrationForm)',但函數'register'被定義爲'def register(request):'。它不知道如何獲取這些關鍵字參數。不幸的是,*我不明白這些帖子中發生了什麼,所以我不能確切地告訴你在那裏會發生什麼。但也許這是一個開始的地方。 – Dave

+0

戴夫先前的評論本身幫助我解決了這個問題。這只是因爲我沒有從registration.views中導入註冊方法,並且在這之後就解決了。非常感謝您的幫助 – swaroop