Djangoroidの奮闘記

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

Django REST Frameworkに再挑戦 その19 ModelSerializer Create Method

概要

Django REST Frameworkに再挑戦 その19 ModelSerializer Create Method

参考サイト

www.django-rest-framework.org

www.codingforentrepreneurs.com

ModelSerializer Create Method

  • account/api/serializers.py にコードを追記する。
class UserCreateSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = [
            'username',
            'password',
            'email',
        ]
        extra_kwargs = {"password":
                            {"write_only": True}
                            }
    def create(self, validated_data):

        return validated_data
  • これだけでは、createメソッドを上書きしているだけなので、ここに処理を加えていく。
class UserCreateSerializer(ModelSerializer):
    class Meta:
        model = User
        fields = [
            'username',
            'email',
            'password',
        ]
        extra_kwargs = {"password":
                            {"write_only": True}
                            }
                            
    def create(self, validated_data):
        username = validated_data['username']
        email = validated_data['email']
        password = validated_data['password']
        user_obj = User(
                username = username,
                email = email,
            )
        user_obj.set_password(password)
        user_obj.save()
        return validated_data
  • これで、/api/users/register/にアクセスして、登録してみる。。。。さらに登録したuserでログインしてみる。。。できた〜!