Я делаю простой канал, который состоит из записей, сделанных авторами, на которые подписан текущий пользователь. У меня есть 3 модели, которые являются моделью пользователя по умолчанию, моя модель "Post", которая связана с User через ForeignKey:
class Post(models.Model):
...
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name="posts")
...
Модель "Relations", которая имеет 2 поля:
follower = models.ForeignKey(User, on_delete=models.CASCADE, related_name="follows")
following = models.ForeignKey(User, on_delete=models.CASCADE, related_name="followed")
Поэтому я написал этот код для получения необходимых сообщений:
user = request.user
posts = Post.objects.filter(author__in = [relation.following_id for relation in user.follows.all()]).all()
И, честно говоря, он работает просто отлично, но есть ли способ улучшить мой запрос? Спасибо.