Models:
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")
The UserFollowers table has record for who follows whom.
Here, I need to get all tweets posted by people I follow
Current approach:
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)
- generate the my followee list (list of people I follow)
- fetch tweets where tweet is posted by userid and is also present in myfolloweelist
I would like to know if there is a better way to handle this.
I tried this and it worked for just one value of user_idx but not for others:
my_timeline_tweets = Tweets.objects.filter(user__follower = user_idx)