Django-rest-auth (dj-rest-auth) 自定义用户注册

sai*_*ron 3 authentication django django-rest-framework django-rest-auth

我正在使用 dj-rest-auth ( https://dj-rest-auth.readthedocs.io/en/latest/ ) 并尝试实现自定义注册表单。当我尝试注册新用户时,我有基本表单。我在旧版本 ( https://django-rest-auth.readthedocs.io/en/latest/ ) 中看到,如果您使用 password1 和 password2,则不必重新键入所有代码。

序列化程序.py

from rest_framework import serializers
from dj_rest_auth.registration.serializers import RegisterSerializer


class CustomRegisterSerializer(RegisterSerializer):
first_name = serializers.CharField()
last_name = serializers.CharField()

def get_cleaned_data(self):
    super(CustomRegisterSerializer, self).get_cleaned_data()
    return {
        'username': self.validated_data.get('username', ''),
        'password1': self.validated_data.get('password1', ''),
        'password2': self.validated_data.get('password2', ''),
        'email': self.validated_data.get('email', ''),
        'first_name': self.validated_data.get('first_name', ''),
        'last_name': self.validated_data.get('last_name', '')
    }
Run Code Online (Sandbox Code Playgroud)

设置.py

REST_AUTH_SERIALIZERS = {
'REGISTER_SERIALIZER': 'accounts.serializers.CustomRegisterSerializer',
}
Run Code Online (Sandbox Code Playgroud)

sai*_*ron 5

问题出在settings.py中:

REST_AUTH_REGISTER_SERIALIZERS = {
    'REGISTER_SERIALIZER': 'accounts.serializers.CustomRegisterSerializer'
}
Run Code Online (Sandbox Code Playgroud)

  • 需要在 2023 年使用 `REST_AUTH = {`,如此处提到的 https://dj-rest-auth.readthedocs.io/en/latest/configuration.html (3认同)