user = User.objects.create_user( username="whatever", email="whatever@some.com", password="password")
user = authenticate( username="whatever",password="password")
class UserSerializers(serializers.ModelSerializer):
class Meta:
model = User
fields = "__all__"
# this is the method responsible for insertion of data with hashed password
def create(self, validated_data):
return User.objects.create_user(**validated_data)
9条答案
按热度按时间6za6bjd01#
在设置中添加类似的内容
或者如果您使用userena作为您的帐户
luaexgnf2#
有趣的是,check_password在以下语句中返回True:
svdrlsy43#
为什么不像这样创建一个用户:
uujelgoq4#
在www.example.comsettings.py中添加
例如,如果django应用程序名称是office,自定义用户类是Account,则
ui7jx7zq5#
set_password
是一个误导性的方法,它不会将密码保存在用户表中。lzfw57am6#
您必须检查用户是否处于活动状态?如果不是,您只需在管理面板中将用户设置为活动状态,或者在创建用户时通过向用户模型添加以下行来设置:
pgvzfuti7#
同时检查您的用户名/密码组合是否正确。有时,通过createsuperuser命令创建的组合与您通常使用的用户名不同。
9w11ddsr8#
正如大多数人所建议的,如果我们使用
User.objects.create_user(**validated_data)
创建用户的,这将对原始密码进行散列,并存储散列后的密码。2fjabf4q9#
我对这个问题困惑了四天,上面的答案也没有帮助。问题是,我,像你一样,正在使用user.save(),我不能看到问题是什么,但后来我用调试的眼睛看了看,结果发现,如果你使用user.save(),它会以某种方式扰乱密码的哈希。别问我怎么会不知道。所以我用Django提供的user.create()方法解决了这个问题,效果非常好:
我使用了类似的代码,但是您可以使用user.create()来完成您希望的操作。