Django REST Frameworkに再挑戦 その22 User Detail Serailizer
概要
Django REST Frameworkに再挑戦 その22 User Detail Serailizer
参考サイト
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)
に置き換えておく。