[Django]フォローしているユーザーの投稿のみをタイムラインに流す
タイムラインやホームを作っている時、フォローしているユーザーの投稿のみを流したい時ってありますよね?Djangoで簡単にそれを実装する方法を紹介します。
フォローしているユーザーの投稿のみを!
フォロー・アンフォロー機能に関してはこちらを参照ください。
jyouj.hatenablog.com
さてさて、投稿モデルは作っていると仮定します。タイムラインを実装していきましょう。
from django.views import generic from django.contrib.auth.mixins import LoginRequiredMixin class TimeLineListView(LoginRequiredMixin, generic.ListView): template_name = 'posts/timeline.html' context_object_name = 'posts' def get_queryset(self): """自分の投稿と、フォローしているユーザーの投稿のみを返す""" users = self.request.user.get_followings() return Post.objects.filter(Q(user__in=users) | Q(user=self.request.user))
これによって、フォローしているユーザーと自分の投稿のみを流すことができました。
何かあれば、じぇい👨💻 (@jyouj__) | Twitterに!