亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python(Django)如何按時間戳屬性對對象列表進行排序

Python(Django)如何按時間戳屬性對對象列表進行排序

手掌心 2023-10-25 10:50:36
我有一個使用此 python 函數創建的對象“帖子”列表,我需要按時間戳屬性對該列表進行排序。def following(request):    posts=[]    follows=Follow.objects.all()    for follow in follows:        if follow.follower==request.user:            posts_user=Post.objects.filter(user=follow.user)            for post in posts_user:                posts.append(post)                return render(request, "network/following.html",{        "posts":posts    })如果這是一個 QuerySet,我將使用此函數進行排序:posts = posts.order_by("-timestamp").all()但這是一個列表,所以我不能使用這個函數,它給了我這個錯誤:'list' object has no attribute 'order_by'如何按時間戳對此列表進行排序,以便最新的帖子位于第一個?這是 models.py 中的 Post 類class Post(models.Model):    user = models.ForeignKey("User", on_delete=models.CASCADE, related_name="user_post")    text=models.TextField(blank=True)    timestamp = models.DateTimeField(auto_now_add=True)    likes=models.IntegerField(default=0)我的想法是將列表轉換為查詢集,但我不知道該怎么做。謝謝你!
查看完整描述

1 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

您可以使用__in?字段查找來過濾您的帖子,然后對該查詢集進行排序。就像是:


Post.objects.filter(

? ? user__in=Follow.objects.filter(

? ? ? ? follower=request.user

? ? ).values_list('user')

).order_by("-timestamp")

我們首先構建一個查詢集來過濾所有等于當前用戶( )Follow的對象。接下來,我們通過調用來獲取所有這些過濾對象上的所有對象。我們傳遞此查詢集來過濾屬性位于此查詢集中的對象。然后我們只需按時間戳排序即可。followerrequest.userFollow.userFollowvalues_listPostuser


查看完整回答
反對 回復 2023-10-25
  • 1 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號