我正在尝试使用django rest framework中的post请求创建用户。
这是我的序列化代码:
class UserSerializer(serializers.ModelSerializer):
favorites = serializers.PrimaryKeyRelatedField(many=True, queryset=Favorite.objects.all())
class Meta:
model = User
fields = ('id', 'username','password','favorites')
extra_kwargs = {
'password': {
'write_only': True,
},
'confirm_password': {
'write_only': True,
},
'favorites':
{
'read_only': True,
},
}
def create(self, validated_data):
return User.objects.create(**validated_data)
对于create方法我也使用了这个实现:
def create(self, validated_data):
user = User(username=validated_data['username'])
user.set_password(validated_data['password'])
user.save()
return user
在我的管理面板中,它表示已创建的用户:
Invalid password format or unknown hashing algorithm.
我应该改变什么?
答案 0 :(得分:3)
User
的经理create_user()上有一种特殊的方法,可以完全按照您的需要进行操作
答案 1 :(得分:0)
这个答案修正了它: https://stackoverflow.com/a/29391122/355641
我想使用get_user_model
就是解决方案。