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

标签 python django rest django-rest-framework

我有一个自定义用户模型。我已经为用户注册创建了一个 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/

相关文章:

rest - Groovy/Grails-通过使用HTTPBuilder获得HttpResponseException

python - 动态依赖项在 python setup.py 中如何工作?

python - 当值与另一列匹配时回填 Pandas 系列中的值

处理异常后恢复的 Pythonic 方式

wordpress - 隐藏 WordPress Rest API 端点定义

javascript - 如何序列化NodeJS?

python - pandas DataFrame.replace 函数因日期时间而损坏

python - 将 Django 与 Angular js 集成

python - 基于django的技能实现

python - Django allauth 重定向到注册