我正在使用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非常新!另外,我发现这个问题提供了一个解决方案,但这似乎需要两个数据库交互 - 我不相信这是有效的,但这对我来说可能是一个不正确的假设.