gpt4 book ai didi

python - Django 基于类的 View 中的密码格式无效或未知的哈希算法

转载 作者:行者123 更新时间:2023-12-01 06:25:44 24 4
gpt4 key购买 nike

我想通过API View 创建用户。但我遇到了这个问题:

enter image description here

序列化器.py

class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'password')

View .py

class UserRegistration(CreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer

如何解决这个问题?

最佳答案

您应该覆盖序列化程序的 create()在保存新用户对象之前对密码进行哈希处理的方法。您可以使用set_password为此:

 class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'password')

def create(self, validated_data):
user = User(
username=validated_data['username']
)
user.set_password(validated_data['password'])
user.save()
return user

否则 User.password 将在数据库中被盯着而不进行散列,这是不安全的。

您也可以使用create_user默认调用 set_password 的方法:

 class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'password')

def create(self, validated_data):
return User.objects.create_user(**validated_data)

关于python - Django 基于类的 View 中的密码格式无效或未知的哈希算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60153022/

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