2016-11-10 1 views
0

사용자가 serializer를 만들었지 만 여전히 암호와 c_password 필드를 반환하고 있습니다. 어떻게 그 응답을 제거 할 수 있습니다.Django rest는 생성 후 암호를 제거합니다.

perform_create 메서드를 추가하고 사용자 지정 Response 개체를 반환했습니다. 하지만 암호로 serializer 객체를 반환하고 있습니다.

+0

당신의보기는 어떻습니까? – e4c5

+0

보기로 편집 –

답변

1

create 방법으로 유효성이 검사 된 데이터가 반환됩니다. 사용자 객체 만 원하면 그 객체를 반환하면됩니다. 예 :

class UserCreateSerializer(ModelSerializer): 
    phone = CharField(label='Phone number') 
    password = CharField(label='password') 
    c_password = CharField(label='confirm passowrd') 

    class Meta: 
     model = User 
     fields = [ 
      'phone', 
      'username', 
      'password', 
      'c_password' 
     ] 

     extra_kwargs = {"password": {"write_only": True}, 
         "c_password": {"write_only": True}} 

    def create(self, validated_data): 
     phone = validated_data['phone'] 
     username = validated_data['username'] 
     password = validated_data['c_password'] 

     user_obj = User(phone=phone, username=username) 
     user_obj.set_password(password) 
     user_obj.save() 

     return user_obj 
+0

죄송합니다 c_password는 사용자 모델에 포함되어 있지 않습니다. 방금 암호 확인을 위해 추가했습니다. 그리고 내가 user_obj를 반환하면. 그것은 나에게 c_password가 사용자 필드가 아니라는 오류를 준다. c_password는 유효성을 검사하는 것입니다. 내가 필드에 c_password를 선언 한 경우, notit가 오류를 발생시키는 경우 –

관련 문제