Django REST frameworkにて、アプリ作成を行っております。
Modelを作成し、ModelViewSet、ModelSerializeを作成し、一通りの作業が完了し、
「さて、カスタマイズするか!」の段階まで来ました。
まずは、AbstractBaseUserクラスを継承し、自作したCustomizedUserモデルを登録する際、
1対1のリレーションを作成しているFamilyモデルを作成し、紐づける処理を作成しました。
Python
1from rest_framework import serializers 2 3from ..models.family_model import FamilyModel 4from ..models.Customized_user_model import CustomizedUserModel 5 6 7class CustomizedUserSerializer(serializers.ModelSerializer): 8 """ 9 ModelデータをJSON形式に変換するシリアライザー 10 """ 11 class Meta: 12 fields = ('id', 13 'email', 14 'password', 15 'first_name', 16 'last_name', 17 'nick_name', 18 'phone_number', 19 'family', 20 'is_staff', 21 'is_active', 22 'is_superuser', 23 'create_at', 24 'update_at') 25 model = CustomizedUserModel 26 27 def create(self, validated_data): 28 # 家族作成 29 family_model = FamilyModel() 30 family_model.save() 31 32 # Customizedユーザ作成 33 email = validated_data['email'] 34 password = validated_data['password'] 35 customized_user_model = CustomizedUserModel(email=email, family=family_model, is_active=True) 36 37 customized_user_model.set_password(password) 38 customized_user_model.save() 39 40 return validated_data 41
無事にレコードが登録されたのですが、ModelViewSetのカスタマイズでも
同じことが達成できるのでは?と思い、今回の質問に至りました。
皆様はこのようなケースの場合、ModelViewSet、ModelSerializerのどちらのカスタマイズをおこなっているのでしょうか?
また、「このケースはModelViewSet、こちらはModelSerializer」など、
場合分けができるのであれば、そちらについてもご回答をお願いできますでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/04 21:24