くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Django REST Frameworkで返却時だけ表示を変更する(to_representation)

DRFで一部表示を変えるために、serializerを拡張するのめんどくさいなと思ってたら、
良い方法がドキュメントに書いてあったので、その時の備忘録。
Advanced serializer usage | Overriding serialization and deserialization behavior

こんな感じでSerializerを拡張

ドキュメントの例。usernameをlowercaseにしてる。

from rest_framework import serializers, viewsets
from .models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        
    def to_representation(self, instance):
        """Convert `username` to lowercase."""
        ret = super().to_representation(instance)
        ret['username'] = ret['username'].lower()
        return ret

以上!

参考にしたサイトさま