Django Python - Как сделать запрос

У меня есть эта модель потребителя

class ConsumerModel(models.Model):
    GENDER_LIST = (
        ('male','MALE'),
        ('female','FEMALE'),
        ("lgbt",'LGBT')
    )
    REGISTER_AS = (
        ('consumer','CONSUMER'),
        ('manager','MANAGER')
    )

    uid = models.CharField(max_length=8)
    # remove the default value some time
    profile_id = models.UUIDField()
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    name = models.CharField(max_length=40)
    birthdate = models.DateField(null=True,blank=True)
    mobile_number = models.CharField(max_length=12, null=True, blank=True)
    gender = models.CharField(max_length=20,choices=GENDER_LIST,null=True,blank=True)
    profile_image = models.ImageField(null=True,blank=True,upload_to="images/")
    register_as = models.CharField(null=True, blank=False,choices=REGISTER_AS, max_length=12)

    def __str__(self):
        return self.user

У меня есть представление, в котором я хочу посмотреть/напечатать для потребителя со следующим пользователем, но оно возвращает ошибку:

serializer = ConsumerLoginSerializer(data=request_data)

        if serializer.is_valid:
            try:
                user = User.objects.get(email=request_data["email"])
            except:
                return Response(data={'status': wrong_input, 'message':wrong_body_vals_msg, 'errors':{"Email":"User not found"}})
            
            print("PROFILE ID: " + ConsumerModel.objects.get(user=user))
            return Response(data={"status": ok, 'message': "Success"}, status=ok) 

is_valid - это метод, а не свойство.

serializer.is_valid возвращает ссылку на метод, поэтому она всегда истинна, даже если данные, предоставленные пользователем, неверны.

поэтому вместо этого должен быть вызов метода

if serializer.is_valid(raise_exception=True):
# rest of your code

when you use serializer.is_valid(raise_exception=True), it validates the data against the serializer. If data passes validation, it continues execution, if the data fails validation, it raises a ValidationError exception instead of returning a boolean value (True or False).

Вернуться на верх