Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Django REST Frameworkに再挑戦 その22 User Detail Serailizer

概要

Django REST Frameworkに再挑戦 その22 User Detail Serailizer

参考サイト

www.django-rest-framework.org

www.codingforentrepreneurs.com

User Detail Serailizer

  • user detailのAPIViewを作成したい。そしてそれをcommentsのdetailViewに表示させたい。まず、accounts/api/serializers.pyにコードを追記する。
class UserDetailSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = [
            'username',
            'email',
            'first_name',
            'last_name',
        ]
  • 次に、comments/api/serializers.pyにUserDetailSerializerをimportする。
from accounts.api.serializers import UserDetailSerializer
...
class CommentChildSerializer(ModelSerializer):
    user = UserDetailSerializer()
...
class CommentDetailSerializer(ModelSerializer):
    user = UserDetailSerializer()
...
  • このままでは、comment api viewからuserの編集ができてしまうので、read_only=Trueを追記しておく。
user = UserDetailSerializer(read_only=True)
  • post/api/serializers.pyのuserの箇所も同様に、user = UserDetailSerializer(read_only=True)に置き換えておく。