从应用程序内部调用Django allauth自定义注册视图

时间:2019-07-04 06:44:02

标签: django django-allauth django-rest-auth

我正在使用 Django 2.2 django-allauth 来处理登录和注册,并使用 django-rest-auth 来通过以下方式启用身份验证使用 django-allauth 库的API。

为了处理注册,我编写了一个自定义视图

class CustomRegisterView(generics.CreateAPIView):
    serializer_class = RegisterSerializer
    permission_classes = register_permission_classes()

    @sensitive_post_parameters_m
    def dispatch(self, *args, **kwargs):
        return super().dispatch(*args, **kwargs)

    def get_response_data(self, user):
        if allauth_settings.EMAIL_VERIFICATION == allauth_settings.EmailVerificationMethod.MANDATORY:
            return {"detail": _("Verification e-mail sent.")}

        return {"detail": _("Registration successful")}

    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = self.perform_create(serializer)

        headers = self.get_success_headers(serializer.data)

        return Response(self.get_response_data(user),
                        status=status.HTTP_201_CREATED,
                        headers=headers)

    def perform_create(self, serializer):

        user = serializer.save(request=self.request)

        complete_signup(self.request, user, allauth_settings.EMAIL_VERIFICATION, None)
        return user

这处理所有注册流程,验证,发送信号等。

现在,我想从应用程序的其他部分(视图)手动创建用户帐户。

是否可以使用** CustomRegisterView 类创建帐户?**

我只是通过必填字段,并且用户已注册。

0 个答案:

没有答案