【发布时间】:2021-03-02 02:08:19
【问题描述】:
我正在尝试按“已创建”的降序排列此列表中我创建的所有帖子。
这是我的功能:
def posts_search_by_following(request, user_username):
start = int(request.GET.get('start') or 0)
end = int(request.GET.get('end') or (start + 9))
profile = get_object_or_404(User, username=user_username)
following_users = profile.get_following()
posts = list()[start:end]
for person in following_users:
posts += Post.objects.filter(creator=person).order_by('-created')
return JsonResponse(
{'posts': [post.serialize() for post in posts]}
)
就像现在一样,它只是按每个人的“创建”字段排序帖子。因此,当返回整个列表时,并非一切都井井有条。但是,如果我尝试将 .order_by('created') 移动到其他任何地方:
{'posts': [post.serialize() for post in posts].order_by('created')}
它会给我一个像这样的属性错误:
AttributeError at /posts/Moderator/following/search
'list' object has no attribute 'order_by'
我怎样才能得到帖子的总数,然后对它们进行相应的排序?
【问题讨论】:
-
.sort()确实看起来正是我所需要的,但是当我尝试像这样使用它时:return JsonResponse( {'posts': [post.serialize() for post in posts.sort()]} )我收到这样的类型错误'<' not supported between instances of 'Post' and 'Post'
标签: python django list django-views attributeerror