(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
非常感谢有关正确用法的指导,谢谢!
答案 0 :(得分:0)
好的 - 我已经确定了解决方案。这与我的自定义表单没有收集(必需的)用户名字段有关。
包含它有帮助,我通过实现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
希望有所帮助
答案 1 :(得分:0)
试试这一行:
new_user = super(MyRegistrationView, self).register(form_class)
并将网址更改为:
url(r'^accounts/register/$', MyRegistrationView.as_view(),
name='registration_register'),
希望它有效!