djangoモデルクラスプログレッシブModel Serializer

1853 ワード

1.定義
例えば、ボokInfoSerializerを作成します。
class BookInfoSerializer(serializers.ModelSerializer):
    """        """
    class Meta:
        model = BookInfo
        fields = '__all__'
 
  • モデル指定はどのモデルクラスを参照しますか?
  • fieldsがモデルクラスとして指定したどのフィールドが
  • を生成しますか?
    2.フィールドの指定
    1)フィールドを明確にするためにfieldsを使用して、__all__テーブル名にはすべてのフィールドが含まれています。
    class BookInfoSerializer(serializers.ModelSerializer):
        """        """
        class Meta:
            model = BookInfo
            fields = ('id', 'btitle', 'bpub_date')
     2)excludeを使うと、どのフィールドが除外されているかを明確にすることができます。
    class BookInfoSerializer(serializers.ModelSerializer):
        """        """
        class Meta:
            model = BookInfo
            exclude = ('image',)
     
    3)デフォルトのModelSerializerは、主キーを関連フィールドとして使用しますが、depthを使って簡単に入れ子表現を生成できます。depthは整数であるべきです。入れ子の階層数を示します。例えば:
    class HeroInfoSerializer2(serializers.ModelSerializer):
        class Meta:
            model = HeroInfo
            fields = '__all__'
            depth = 1
    4)リードオンリーフィールドを指定する
    リロードできますonlyufieldsはリードオンリーフィールドを指定します。すなわち、プログレッシブ出力のためのフィールドだけです。
    3.追加のパラメータを追加
    私たちはextraを使うことができます。kwargsパラメータはModel Serializerに元のオプションパラメータを追加または修正します。
    class BookInfoSerializer(serializers.ModelSerializer):
        """        """
        class Meta:
            model = BookInfo
            fields = ('id', 'btitle', 'bpub_date', 'bread', 'bcomment')
            extra_kwargs = {
                'bread': {'min_value': 0, 'required': True},
                'bcomment': {'min_value': 0, 'required': True},
            }