Django Python - 如何查询这个

问题描述 投票:0回答:1

我有这个消费者模型

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) 
python django django-rest-framework
1个回答
0
投票

is_valid 是方法而不是属性。

serializer.is_valid
返回一个方法引用,因此它始终为 true,即使用户提交的数据不正确。

所以,它应该是一个方法调用

if serializer.is_valid():
# rest of your code
© www.soinside.com 2019 - 2024. All rights reserved.