我正在使用
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)
答案 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
进行反转。