我有这个消费者模型
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
返回一个方法引用,因此它始终为 true,即使用户提交的数据不正确。
所以,它应该是一个方法调用
if serializer.is_valid():
# rest of your code