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).