[''значение "test" должно быть либо True, либо False, либо None''].
Я пытаюсь создать API регистра, но он возвращает ошибку:
views.py
class RegisterAPI(APIView):
permission_classes = ()
authentication_classes = ()
def post(self, request, *args, **kwargs):
serializer = RegisterSerializer(data=request.data)
print(serializer)
serializer.is_valid(raise_exception=True)
user = serializer.save()
print(user)
return Response({
"user": UserSerializer(user, context=self.get_serializer_context()).data,
"token": AuthToken.objects.create(user)[1]
})
Models.py
class CustomUser(AbstractBaseUser):
username = models.CharField (max_length= 200)
first_name = models.CharField (max_length = 300)
last_name = models.CharField (max_length = 300)
email = models.EmailField (max_length=255,unique=True)
password_f = models.CharField (max_length=100,)
profile_pic = models.ImageField (upload_to = r'Computerizer/static/Oauth/media')
sub_to_newsletter = models.BooleanField(default=True)
own_pc = models.BooleanField(default=False)
active = models.BooleanField(default=True,null=True) #can login
staff = models.BooleanField(default=False,null=True) #staff user not superuser
admin = models.BooleanField(default=False,null=True) #admin / superuser
USERNAME_FIELD = 'email' #username
#email and password is requierd by default
REQUIRED_FIELDS = [] #python manage.py createsuperuser
objects = CustomUserManager()
def __str__(self):
return self.email
def get_first_name(self):
return self.email
def get_last_name(self):
return self.email
def has_perm(self,perm,obj=None):
return True
def has_module_perms(self,app_label):
return True
@property
def is_staff(self):
return self.staff
@property
def is_admin(self):
return self.admin
@property
def is_active(self):
return self.active
def get_absolute_url(request):
return reverse('')
Serializers.py:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ('id','username','first_name','last_name','email','password_f','sub_to_newsletter','own_pc')
class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ('id', 'username','first_name','last_name', 'email', 'password_f','sub_to_newsletter','own_pc')
def create(self, validated_data):
user = CustomUser.objects.create_user(validated_data['username'], validated_data['email'], validated_data['password_f'])
return user
ошибка:
[''test'' значение должно быть либо True, False, либо None.'']
это происходит с полем password_f, я дважды проверил все вещи и все выглядит нормально, для записи я использую django-knox в DEFAULT_AUTHENTICATION_CLASSES.
Спасибо ..