如何在 Django 框架中更改特定的数据库列值

时间:2021-01-12 14:50:47

标签: python django-models django-views django-templates

嗨,我正在尝试通过动态解决重置密码的问题..我在做什么一些注册我的表单它将存储在我的数据库中所有字段值存储,但是我已经提供了一个连接,就像通过邮件重置密码一样,如果有的话一个提交电子邮件,它将转到电子邮件 ID,他将在该页面中链接他们的重置密码,我是密码并符合密码,此表单应该转到该特定字段中的相同注册数据库是该密码,符合密码仅更改不其他值..但在我的代码中发生了什么更新密码但仍然显示空值的列值

视图.py

def reset_password(request,id):

if request.method == 'POST' and Register.objects.all():
        if Register.objects.get(id=id):
            print('re')
            password = request.POST['password']
            password1 = request.POST['password1']
            # Validation
            #reg = Register.objects.filter(password='65789')
            #for obj in reg:
             #   obj.password1 = '65789'
              #  obj.save()

            arr = Register(id=id,password=password,password1=password1)
            #user = Register(id=id,arr)
            arr.save()
            return HttpResponse('New password succesfully stored ')

return render(request,'reset_password.html')

##Mysql 数据库 .. 在那个 24 id 请检查它你会明白,我不想重置 django 框架工作,为什么我尝试这种方式请任何人帮助我 enter image description here

1 个答案:

答案 0 :(得分:0)

据我了解您的问题,您想向用户发送密码重置链接。
Django 已经有一个简单的方法来做到这一点。您需要使用以下视图:-

  • PasswordResetView
  • PasswordResetDoneView
  • PasswordResetConfirmView
  • PasswordResetCompleteView

这里有一个 tutorial,您可能会觉得有帮助。
要回答你的实际问题,虽然这样的事情应该可行:-

register_obj = Register.objects.get(id=id)
register_obj.password = new_password
register_obj.password1 = new_password
register_obj.save()