Halo. Я работаю над django кодом API rest_framework для регистрации пользователей, но когда я тестирую код с почтальоном, они не регистрируются и не возвращают никаких ошибок, надеясь, что кто-нибудь сможет помочь. ниже приведены мои модели, сериализаторы и коды представлений .....
модели
class CustomUser(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
password = models.CharField(max_length=100)
created = models.DateField(auto_now=True)
timestamp = models.DateTimeField(auto_now=True)
role = models.CharField(max_length=5)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
def __str__(self):
return self.email
class Meta:
ordering = ('email',)
objects = CustomManager()
просмотры
@api_view(['POST', ])
def registration(request):
if request.method =='POST':
serializer = RegisterUserSerializer(data=request.data)
data = {}
if serializer.is_valid():
user = serializer.save()
data['response'] = 'registration successful'
data['email'] = user.email
else:
data = serializer.errors
return Response(data)
сериализаторы
class RegisterUserSerializer(serializers.HyperlinkedModelSerializer):
confirm_password = serializers.CharField(style= {'input_type': 'password'},
write_only=True)
class Meta:
model = CustomUser
fields = ['id', 'email', 'password', 'confirm_password']
extra_kwargs = {'password': {'write_only': True, 'required': True}}
def save(self):
user = CustomUser(
email = self.validated_data['email'],
)
password = self.validated_data['password']
confirm_password = self.validated_data['confirm_password']
if password != confirm_password:
raise serializers.ValidationError({'password: Password didn\' match'})
user.set_password(password)
user.save()
return user