2011-09-29 65 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