在 Django Rest Framework 上执行请求时,我无法序列化模型来获取结果。
模型.py
class Karfarma(models.Model):
user = models.OneToOneField(User, related_name='karfarma', on_delete=models.CASCADE)
mobile = models.TextField(max_length=11)
validation_number = models.TextField(max_length=5, blank=True, default=None)
phone_number = models.TextField(max_length=10, blank=True, default=None)
datetime_join_persian = models.DateTimeField(default=None, null=True)
def __unicode__(self):
return "%s %s" % (self.user.first_name, self.user.last_name)
序列化器.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
views.py
class UserList(APIView):
queryset = User.objects.all()
def get(self, request):
users = User.objects.all()
serializer = UserSerializer(users)
return Response(serializer.data)
这是执行请求时收到的错误的简化版本:
AttributeError:尝试获取字段值时出现 AttributeErroruser
在串行器上UserSerializer
。
序列化器字段可能命名不正确并且与序列化器上的任何属性或键不匹配QuerySet
实例。
原始异常文本是:“QuerySet”对象没有属性“user”。
每当您尝试将查询集传递给序列化器时,请始终将其传递给UserSerializer(users,many=True)
。如果您只想传递单个用户对象,您可以使用User.objects.get(some_attribue=something)
然后将该对象传递给序列化器,而无需many=True
flag.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)