Показать сообщение только друзьям пользователя

Когда пользователь входит в систему, я хочу, чтобы он видел только сообщения друзей, у меня есть отдельная модель для друзей и отдельная для сообщений, как мне отфильтровать сообщения по друзьям пользователя?

Вот мое мнение

def post_list(request):
    
    for user in Post.objects.all():
        if request.user.is_authenticated:
            friend_list = FriendList.objects.get(user=request.user )
            friends = friend_list.friends.all()
            context['friends'] = friends
 
  
    context['posts'] = Post.objects.prefetch_related('comments').filter(username=friends).order_by('-date_posted')
  
    return render(request,'feed/feed.html',context)    


Постовая модель

class Post(models.Model):
    username = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    description = models.TextField(max_length=500, blank=True)
    date_posted = models.DateTimeField(auto_now_add=True)
    video = models.FileField(upload_to="videos",blank=True,null=True)
    tags = models.CharField(max_length=100, blank=True)
    views = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="view")
    shared_body = models.TextField(blank=True, null=True)
    shared_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True, related_name='+')
    shared_on = models.DateTimeField(blank=True, null=True)

Попробуйте это

def post_list(request):
    
    context = {}
    if request.user.is_authenticated:
        friend_list = FriendList.objects.get(user=request.user )
        friends = friend_list.friends.all()
        context['friends'] = friends
        context['posts'] = Post.objects.filter(username__in=friends).order_by('-date_posted')
    return render(request,'feed/feed.html',context)

UPDATE
. показать сообщения текущего пользователя и сообщения друзей текущего пользователя.

def post_list(request):
    
    context = {}
    if request.user.is_authenticated:
        friend_list = FriendList.objects.get(user=request.user )
        friends = friend_list.friends.all()
        context['friends'] = friends
        context['posts'] = Post.objects.filter(username__in=list(friends) + [request.user,]).order_by('-date_posted')
    return render(request,'feed/feed.html',context)
Вернуться на верх