【问题标题】:Implement Django SetPasswordForm [closed]实现 Django SetPasswordForm [关闭]
【发布时间】:2021-04-29 12:29:45
【问题描述】:

Django 文档https://docs.djangoproject.com/en/3.2/topics/auth/default/#module-django.contrib.auth.forms

我在下面的代码中遇到错误。 tuple' object has no attribute 'get'

def password_reset(request):
    if request.method == 'POST':
        form = SetPasswordForm(request.user)
        #Form.is_valid() is returning an error
        if form.is_valid():
            #Do this
        else:
            return (request, 'home/reset_password.html', {'form': form})
    form = SetPasswordForm(request.user)
    return render(request, 'home/reset_password.html', {'form': form})

【问题讨论】:

  • 显示错误的完整堆栈跟踪。

标签: python django forms


【解决方案1】:

您应该使用form = SetPasswordForm(request.user, request.POST),而不是form = SetPasswordForm(request.user)。因为您需要传递来自通过 POST 方法发送数据的用户的值,所以它们在 request.POST 中可用。你可以在GitHub source查看实现。

【讨论】:

  • 是的,我刚刚注意到在源代码中:github.com/django/django/blob/main/django/contrib/auth/…
  • 是的,看到您的编辑,这就是我删除它的原因:) 无论如何,错误似乎与其他事情有关。也许 OP 没有导入正确的表单,或者只是创建了一个同名的表单并使用它?
猜你喜欢
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2010-09-28
  • 2012-10-01
  • 2014-01-10
  • 2012-02-24
  • 2010-11-05
相关资源
最近更新 更多