Django注册Redux自定义视图

时间:2016-08-02 02:16:08

标签: python django django-registration

(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 个答案:

答案 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'),

希望它有效!