apps.user.serializers의 소스 코드

from django.contrib.auth import get_user_model, password_validation
from django.contrib.auth.password_validation import validate_password
from rest_framework import serializers

from .models import User


[문서]class UserRegisterSerializer(serializers.ModelSerializer): """ 유저 추가 """ password = serializers.CharField( required=True, style={"input_type": "password"}, label="비밀번호", write_only=True )
[문서] def validate_password(self, value): password_validation.validate_password(value, self.instance) return value
[문서] def create(self, validated_data): password = validated_data["password"] user = User.objects.create(**validated_data) user.set_password(password) user.save() return user
[문서] class Meta: model = get_user_model() fields = [ "username", "email", "password", ]
[문서]class UserSerializer(serializers.ModelSerializer): """ 유저 정보 조회, 수정 """
[문서] class Meta: model = get_user_model() fields = [ "username", "email", "profile_image", ] # NOTE: 일단은 username만 수정 가능하게끔 read_only_fields = ("profile_image",) # 부분적으로 수정이 가능 extra_kwargs = { "username": { "required": False, }, "email": { "required": False, }, }
[문서]class UserImageUploadSerializer(serializers.ModelSerializer): """ 유저 프로필 이미지 업로드 """
[문서] class Meta: model = get_user_model() fields = ["username", "profile_image"] read_only_fields = ("username",)
[문서]class UserResetPasswordSerializer(serializers.Serializer): """ 유저 비밀번호 변경 """ old_password = serializers.CharField( style={"input_type": "password"}, label="기존 비밀번호" ) password = serializers.CharField(style={"input_type": "password"}, label="새로운 비밀번호") re_password = serializers.CharField( style={"input_type": "password"}, label="비밀번호 확인" )
[문서] def validate(self, data): # 바꾸려는 패스워드가 기존 패스워드와 동일할 경우 if data["old_password"] == data["password"]: raise serializers.ValidationError("기존 패스워드와 동일합니다.") # 패스워드가 일치하지 않을 경우 if data["password"] != data["re_password"]: raise serializers.ValidationError("새로운 패스워드가 일치하지 않습니다.") # password 형식 체크 validate_password(data["password"]) return data
[문서]class UserCheckAvailableSerializer(serializers.ModelSerializer): """ 유저 유효성 체크 아이디, 닉네임이 가입가능한 값인지 유효성을 체크합니다. """
[문서] class Meta: model = get_user_model() fields = ["username", "email"] extra_kwargs = { "username": {"required": False, "write_only": True}, "email": {"required": False, "write_only": True}, }
# simplejwt drf-yasg integration
[문서]class TokenObtainPairResponseSerializer(serializers.Serializer): access = serializers.CharField() refresh = serializers.CharField()
[문서] def create(self, validated_data): raise NotImplementedError()
[문서] def update(self, instance, validated_data): raise NotImplementedError()
[문서]class TokenRefreshResponseSerializer(serializers.Serializer): access = serializers.CharField()
[문서] def create(self, validated_data): raise NotImplementedError()
[문서] def update(self, instance, validated_data): raise NotImplementedError()
[문서]class TokenVerifyResponseSerializer(serializers.Serializer):
[문서] def create(self, validated_data): raise NotImplementedError()
[문서] def update(self, instance, validated_data): raise NotImplementedError()
[문서]class TokenBlacklistResponseSerializer(serializers.Serializer):
[문서] def create(self, validated_data): raise NotImplementedError()
[문서] def update(self, instance, validated_data): raise NotImplementedError()