djangoモデルクラスプログレッシブModel Serializer
1.定義
例えば、ボokInfoSerializerを作成します。モデル指定はどのモデルクラスを参照しますか? fieldsがモデルクラスとして指定したどのフィールドが を生成しますか?
2.フィールドの指定
1)フィールドを明確にするためにfieldsを使用して、
3)デフォルトのModelSerializerは、主キーを関連フィールドとして使用しますが、depthを使って簡単に入れ子表現を生成できます。depthは整数であるべきです。入れ子の階層数を示します。例えば:
リロードできますonlyufieldsはリードオンリーフィールドを指定します。すなわち、プログレッシブ出力のためのフィールドだけです。
3.追加のパラメータを追加
私たちはextraを使うことができます。kwargsパラメータはModel Serializerに元のオプションパラメータを追加または修正します。
例えば、ボokInfoSerializerを作成します。
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
fields = '__all__'
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},
}