在Django视图中按降序排序

时间:2018-12-30 06:01:45

标签: django django-models django-forms django-views

我正在使用 sorted()组合两个查询集,然后按

进行排序
DatePosted

但是我想以相反的顺序对其进行排序,即从新到旧。我该怎么办?

def feed(request):
if request.user.is_authenticated:
    result_list=post.objects.none()
    usrpost=post.objects.none()
    channel_result=channel.objects.none()
    chnpost=channel.objects.none()
    userprofile=FollowingProfiles.objects.filter(Profile__user=request.user)
    for p in userprofile:
        postuser=post.objects.filter(Profile__user__username=p.ProfileName)
        result_list=sorted(chain(usrpost,postuser),key=operator.attrgetter('DatePosted'))
        usrpost=result_list
        result_list=usrpost
        postuser=post.objects.none()
    profile_result=Profile.objects.filter(user__username=request.user.username)

1 个答案:

答案 0 :(得分:0)

只需添加reverse=True

sorted(chain(usrpost,postuser),key=operator.attrgetter('DatePosted'), reverse=True)

但是我相信您可以做得更好,因为您可以使用很多方法来执行SQL查询。

更喜欢

userprofile_usernames=FollowingProfiles.objects.filter(Profile__user=request.user).values_list('ProfileName', flat=True)
post.objects.filter(Profile__user__username__in=userprofile_usernames).order_by('DatePosted')

或将DatePosted更改为-DatePosted进行反转。