相关疑难解决方法(0)

为什么我的Django用户模型的密码没有哈希?

我正在使用Django REST框架(DRF)创建一个端点,我可以通过它注册新用户.但是,当我使用POST命中创建端点时,新用户通过序列化程序保存,但密码以明文形式保存在数据库中.我的序列化程序的代码如下:

from django.contrib.auth import get_user_model
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = get_user_model()
        fields = ['password', 'username', 'first_name', 'last_name', 'email']
        read_only_fields = ['is_staff', 'is_superuser']
        write_only_fields = ['password']
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是Django auth软件包中的默认用户模型,而且我对使用DRF非常新!另外,我发现这个问题提供了一个解决方案,但这似乎需要两个数据库交互 - 我不相信这是有效的,但这对我来说可能是一个不正确的假设.

python django django-rest-framework

15
推荐指数
1
解决办法
5616
查看次数

即时更改序列化程序字段

例如,我有以下序列化器:

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = (
            'userid',
            'password'
        )
Run Code Online (Sandbox Code Playgroud)

但我不想在GET上输出密码(当然我的真实例子还有其他字段).如果不编写其他序列化程序,我怎么能这样做?即时更改字段列表.有没有办法做到这一点?

django serialization django-rest-framework

7
推荐指数
1
解决办法
6147
查看次数