[DRF] Model Serializerの使い方

Django Rest Frameworkには便利なシリアライザー機能が含まれています。ModelSerializerはモデルの情報に簡単にアクセスすることができます。

ModelSerializerクラスの特徴

  • モデルに対応するフィールドを自動的に生成
  • シリアライザーのバリデータを自動的に生成 (unique_togetherバリデータなど)
  • create(), update()などの実装が含まれている

ファイルの作成とインポート

Djangoのアプリケーションディレクトリに「serializers.py」ファイルを作ります。下記のようにインポートを指定します。上の2つがserializersを使うための記述。サイトを作るときはauth, authtoken を実装することが多いのでインポート部分は下記のようになる場合が多いです。

ModelSerializerの記述

class モデル名+Serializer(serializers.ModelSerializer): でモデルシリアライザーを宣言します。

クラスの全てのモデルフィールドが対応するシリアライザーフィールドにマッピングされます。

class Meta : と記載し、その下に項目を設定していきます。

model = Model名

fields =[] →フィールドは配列(カンマ区切り)で指定します。

モデル内のすべてのフィールドを使用したいときは

で指定することができます。

シリアライザーから除外したいフィールドが有るときは

と指定できます。

読み取りだけにしたいフィールドがある場合は

モデルでは必須フィールドで、シリアライズ時のみに設定を行いたいときはextra_kwargsを使います。

ModelSerializerのフォーマット

参考

Django REST Framework公式チュートリアル モデルシリアライザー



Author: webmaster