(Django 1.8,Django-Registration-Redux 1.4)
在这篇SO帖子中回答完后:django-registration-redux add extra field
我使用自己的模板实现了一个自定义视图来注册用户,并且我的自定义表单已正确呈现 .
user_views.py
class SignupView(RegistrationView):
form_class = MyRegistrationForm
def register(self, request, form):
print form
print request
new_user = super(SignupView, self).register(request, form)
my_user_model = MyUserModel()
my_user_model.user = new_user
my_user_model.save()
return new_user
但是,寄存器似乎没有被调用 . 但是,当我定义post()时 - 请求来自所有表单数据 .
urls.py
url(
r'^accounts/register/',
user_views.SignupView.as_view(),
name='signup'
), # Customized-Register
url(
r'^accounts/',
include('registration.backends.default.urls')
), # Registration-Redux
非常感谢正确使用的指导,谢谢!
2 回答
好的 - 我已经确定了解决方案 . 它与我的自定义表单没有收集(必需的)用户名字段有关 .
如果有帮助的话,我通过实现form_invalid(self,form)来解决它,因为RegistrationView是Django的FormView的派生类,它暗示了我 .
这个SO答案有助于覆盖用户名要求:Django Registration Redux: how to change the unique identifier from username to email and use email as login
希望能帮助到你
试试这一行:
new_user = super(MyRegistrationView, self).register(form_class)
并将网址更改为:
希望它有效!