楷模:
class Tweets(models.Model):
date_created = models.DateTimeField(default=now, verbose_name="Created on")
tweet_data = models.TextField(verbose_name='tweet message')
user = models.ForeignKey(User,on_delete=DO_NOTHING)
class UserFollowers(models.Model):
follower_user = models.ForeignKey(User,on_delete=CASCADE,related_name="follower")
followee_user = models.ForeignKey(User,on_delete=CASCADE,related_name="followee")
UserFollowers 表記錄了誰跟隨誰。
在這里,我需要獲取我關注的人發布的所有推文
目前的做法:
myfollowees = UserFollowers.objects.filter(follower_user=user_idx)
print(myfollowees)
myfolloweeslist = []
for ele in myfollowees:
myfolloweeslist.append(ele.followee_user.id)
my_timeline_tweets = Tweets.objects.filter(user_id__in = myfolloweeslist)
- 生成我的關注者串列(我關注的人串列)
- 獲取推文由用戶 ID發布并且也出現在 myfolloweelist中的推文
我想知道是否有更好的方法來處理這個問題。
我試過了,它只對 user_idx 的一個值有效,但對其他值無效:
my_timeline_tweets = Tweets.objects.filter(user__follower = user_idx)
uj5u.com熱心網友回復:
您可以過濾:
Tweet.objects.filter(user__followee__follower_user=user_idx)
這將檢索Tweets 的 s.user是一個User物件,該UserFollowers物件存在.user于Tweetasfollowee_user和 asfollower_user中user_idx。
注意:通常最好使用
settings.AUTH_USER_MODEL[Django-doc]來參考用戶模型,而不是直接使用User模型 [Django-doc]。有關更多資訊,您可以查看檔案的參考User模型部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364063.html
標籤:Python 姜戈 django 模型 Django 休息框架 django-views
上一篇:在Django中獲取IntegerChoices物件的值?
下一篇:我想用django制作串列
