Django Allauth пользовательский вид регистрации вызова изнутри приложения - PullRequest
0 голосов
/ 04 июля 2019

Я использую Django 2.2 и django-allauth для обработки входа и регистрации вместе с django-rest-auth для включения аутентификации через API с использованием django-allauth library.

Для обработки регистрации я написал собственное представление

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 для создания учетной записи? **

Я просто пропускаю обязательные поля и пользователь регистрируется.

...