django更新视图密码和ForeignKey

时间:2015-09-21 08:21:00

标签: python django

我目前使用django更新/创建视图,我遇到了一些问题:

  1. 如何更新/创建密码? - 我可以显示旧密码,但
  2. 它不会使用django哈希算法保存新​​密码,因此密码为

    被忽略,用户无法登录。

    class Update(UpdateView):
        model = User
        fields = ['username', 'password']
    
    1. 如何更新/创建外键?

    2. 有没有办法自定义字段?即将它们显示为

    3. 无线电/复选框/密码?

      THX

1 个答案:

答案 0 :(得分:1)

  

我可以显示旧密码,但它不会使用django哈希算法保存新​​密码,因此密码将被忽略,用户无法再登录。

这是因为为了安全起见,Django不存储原始密码,它会存储原始密码的哈希值,足以判断用户是否输入了正确的密码

要设置密码,请使用User.set_password()

user = request.user # or another user source
user.set_password('raw password string')

因此,不要直接更改字段,而是更改上面的密码以存储哈希(而不是原始密码),并且不要打扰"显示旧密码",安全系统赢了& #39; t能够

https://docs.djangoproject.com/en/1.8/ref/contrib/auth/#django.contrib.auth.models.User.set_password