Django Rest Framework で現在のユーザを返す
2023-08-14 23:08:15
質問
現在、Djangoを使用してAPIを開発しています。
しかし
で、現在のユーザを返すビューを以下のエンドポイントで作りたいと思います。
/users/current/
.
これを行うために、私はリストビューを作成し、リクエストを行ったユーザーでクエリセットをフィルタリングしました。それは動作しますが、結果はリストであり、単一のオブジェクトではありません。ページ処理と組み合わせると、他のエンドポイントと比較して、結果があまりにも複雑で一貫性がないように見えます。
また、詳細ビューを作成し、クエリセットをフィルタリングしようとしましたが、DRF は、pk またはスラッグを提供しなかったと文句を言います。
何か思い当たることはありますか?
どのように解決するのですか?
このような場合、一般的なビューから脱却して、自分でビューを書くのが一番でしょう。
@api_view(['GET'])
def current_user(request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
同じことをクラスベースのビューを使って以下のように行うこともできます...
class CurrentUserView(APIView):
def get(self, request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
もちろん、シリアライザーを使う必要はなく、ユーザーインスタンスから必要なフィールドを取り出すだけでも十分です。
@api_view(['GET'])
def current_user(request):
user = request.user
return Response({
'username': user.username,
'email': user.email,
...
})
お役に立てれば幸いです。
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] Django REST フレームワーク: 非モデルシリアライザー
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?