gpt4 book ai didi

python - 尝试获取字段值时出现属性错误

转载 作者:太空狗 更新时间:2023-10-30 01:54:09 25 4
gpt4 key购买 nike

我正在使用 django rest 框架,而我尝试使用的序列化程序正在产生错误。我正在尝试做类似 https://gist.github.com/anonymous/7463dce5b0bfcf9b6767 的事情但我仍然得到错误。模型是

class Visitor(models.Model):

user = models.OneToOneField(User)
check_ins = models.IntegerField(default=0)

@classmethod
def create(cls, username, email, password):
user = User.objects.create_user(username, email, password)
visitor = cls(user=user)
visitor.save()
return visitor

def __str__(self):
return self.user.username

默认的用户类和序列化器是

class UserSerializer(serializers.ModelSerializer):
class Meta:
model=User
fields = ('username')

class VisitorSerializer(serializers.ModelSerializer):
user = UserSerializer()

class Meta:
model=Visitor
fields = ('id','check_ins','user')

我收到这个错误

尝试在序列化程序 VisitorSerializer 上获取字段 user 的值时出现 AttributeError。序列化程序字段的命名可能不正确,并且与 QuerySet 实例上的任何属性或键都不匹配。原始异常文本为:“QuerySet”对象没有“用户”属性。

最佳答案

问题是您在没有设置 many 标志的情况下将查询集传递给序列化程序。该错误告诉您序列化程序在应该访问 visitor.user 时尝试访问 queryset.user,因此您需要告诉序列化程序存在多个对象(而不是一个)通过传递 many=True

关于python - 尝试获取字段值时出现属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com