python -aggregate(Max(‘id’))返回异常’str’对象没有属性’email’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python -aggregate(Max(‘id’))返回异常’str’对象没有属性’email’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3256字,纯文字阅读大概需要5分钟。
内容图文
我一直在尝试让用户获得最高ID,但没有成功.
这是我的用户模型:
class User(models.Model):
email=models.EmailField(unique=True, null=False)
name=models.TextField(null=True)
它的序列化器:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'email', 'name')
风景:
class GetHighestValue(generics.ListAPIView):
serializer_class = UserSerializer
def get_queryset(self):
return User.objects.aggregate(Max('id'))
Got AttributeError when attempting to get a value for field
serializerUserSerializer
. The serializer field might be named
incorrectly and not match any attribute or key on thestr
instance.
Original exception text was: ‘str’ object has no attribute ’email’.
追溯:
Traceback (most recent call last):
File
“/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py”,
line 149, in get_response
response = self.process_exception_by_middleware(e, request) File “/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py”,
line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/usr/local/lib/python2.7/dist-packages/django/views/decorators/csrf.py”,
line 58, in wrapped_view
return view_func(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py”,
line 68, in view
return self.dispatch(request, *args, **kwargs)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/views.py”,
line 466, in dispatch
response = self.handle_exception(exc)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/views.py”,
line 463, in dispatch
response = handler(request, *args, **kwargs)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/generics.py”,
line 201, in get
return self.list(request, *args, **kwargs)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/mixins.py”,
line 48, in list
return Response(serializer.data)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/serializers.py”,
line 674, in data
ret = super(ListSerializer, self).data
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/serializers.py”,
line 239, in data
self._data = self.to_representation(self.instance)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/serializers.py”,
line 614, in to_representation
self.child.to_representation(item) for item in iterable
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/serializers.py”,
line 463, in to_representation
attribute = field.get_attribute(instance)
File “/home/user/.local/lib/python2.7/site-packages/rest_framework/fields.py”,
line 422, in get_attribute
raise type(exc)(msg) AttributeError: Got AttributeError when attempting to get a value for field
UserSerializer
. The serializer field might be named incorrectly and
not match any attribute or key on thestr
instance. Original
exception text was: ‘str’ object has no attribute ’email’.
解决方法:
问题在这里
def get_queryset(self):
return User.objects.aggregate(Max('id'))
期望的返回值是一个查询集.但是聚合不返回查询集.使用User.objects.get()也不返回查询集.返回查询集的唯一方法是使用all()或filter()
def get_queryset(self):
return User.objects.order_by(-'id')[0:1]
这里暗含all(),[0:1]确保您返回的是可迭代对象,而不是单个对象.
内容总结
以上是互联网集市为您收集整理的python -aggregate(Max(‘id’))返回异常’str’对象没有属性’email’全部内容,希望文章能够帮你解决python -aggregate(Max(‘id’))返回异常’str’对象没有属性’email’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。