Я использую 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 для создания учетной записи? **
Я просто пропускаю обязательные поля и пользователь регистрируется.