Django注册Redux自定义视图

(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)

3 years ago

好的 - 我已经确定了解决方案 . 它与我的自定义表单没有收集(必需的)用户名字段有关 .

如果有帮助的话,我通过实现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

希望能帮助到你

3 years ago

试试这一行:

new_user = super(MyRegistrationView, self).register(form_class)

并将网址更改为:

url(r'^accounts/register/$', MyRegistrationView.as_view(),
        name='registration_register'),

希望它有效!