【Python・Django】Django REST frameworkで同一URLでrenderer_classesを動的に変更する方法

【Python・Django】Django REST frameworkで同一URLでrenderer_classesを動的に変更する方法

環境

Django1.1
Django REST framework3.5

やりたかったこと

Django REST frameworkを使っている中で、GETリクエストの場合はjsonを返却し、postリクエストの場合はcsvを返却するという処理を実装したかった。

renderer_classesの変更方法

内部で使用されている、get_renderersをオーバーライドしてあげればokです。
本来の処理はrenderer_classesに記載されているclassをインスタンス化して返す処理となっています。
そのため、オーバーライドした処理の中でもきちんとインスタンス化したものを返却してあげる必要があります。

公式にはここらへんの記載はありませんでしたが、Pythonのライブラリはこういうオーバーライドで拡張性持たせているものが多くて助かります。読みやすいし。

Djangoカテゴリの最新記事