gpt4 book ai didi

python - Django 休息框架,extra_kwargs 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:23 27 4
gpt4 key购买 nike

我有一个自定义用户模型。我已经为用户注册创建了一个 api。以下是我的序列化程序。

class UserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(
required=True,
validators=[
UniqueValidator(queryset=get_user_model().objects.all())
]
)
password = serializers.CharField(min_length=8)

class Meta:
model = get_user_model()
fields = ('email', 'password')
extra_kwargs = {'password': {'write_only': True}, }

def create(self, validated_data):
email = validated_data.pop('email')
password = validated_data.pop('password')
user = get_user_model().objects.create_user(email, password, **validated_data)
return user

这是我的看法:

class Registration(generics.CreateAPIView):
serializer_class = UserSerializer
queryset = get_user_model().objects.all()

有两个输入emailpasswordpassword 字段作为 write_only 字段给出。但是在创建用户之后,api 返回散列密码。如何防止返回密码?

enter image description here

最佳答案

如果使用 extra_kwargs,则不需要在序列化器上显式声明该字段,只需尝试以下操作:

class UserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(
required=True,
validators=[
UniqueValidator(queryset=get_user_model().objects.all())
]
)

class Meta:
model = get_user_model()
fields = ('email', 'password')
extra_kwargs = {'password': {'write_only': True, 'min_length': 8}}

关于python - Django 休息框架,extra_kwargs 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com