djangoにおいてログイン中のユーザーが投稿したpostをすべて表示するページを作ろうとしているのですが、汎用ビューを使って書く方法が知りたいです。
python
1def get_myposts(request): 2 posts = Post.objects.filter(published_date__lte=timezone.now(),author=request.user).order_by('published_date') 3 return render(request, 'mybook/mypage.html', {'posts':posts})
という関数で、投稿者(author)がログイン中のユーザー(request.user)と一致するpostを取り出しているのですが、これをListViewを用いて
python
1class GetMyPost(ListView): 2 template_name = 'mybook/mypage.html' 3 context_object_name = 'posts' 4 queryset = Post.objects.filter(published_date__lte=timezone.now(),author=request.user).order_by('published_date'))
とすると当然ですが'request' is not defined とエラーが出てしまいます。
クラス内にログイン中のuserを定義する関数を書く必要があるかと思われますが、いまいちそのあたりの書き方がわからないのでお教えいただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/27 14:34