6

モデル名 Book があるとします。私は2つのビュー(リストと詳細)を持っています

models.py

class Book(models.Model):
    name = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publishdate = models.DateTimeField()

serializers.py

class BookSerializer(serializers.ModelSerializer):

    class Meta:
        model = Book

このシリアライザーをリスト ビューと詳細ビューで使用する場合。戻りフィールドを設定できますか? 例 : リスト ビューのみが名前リストのみを返し、詳細ビューは名前、作成者、発行日フィールドを返します。または、新しいシリアライザーを作成し、両方のクラスの Class Meta にフィールドを挿入する必要がありますか?

4

1 に答える 1

7

リスト ビューと詳細ビューに異なる表現が必要な場合は、それぞれに個別のシリアライザーを定義する必要があります。例えば...

class DetailBookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('name', 'author', 'publishdate')

class ListBookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('name',)

次に、serializer_class各ビューで適切な属性を設定してください。

于 2013-04-10T10:48:19.857 に答える