如何在Djangos登录表单中预设用户名?
在对现有的解决方案不满之后,我为Django编写了一个OpenId提供程序 如果现在有人想在某处验证自己的身份,并且需要登录,我想显示用户名预设为“abc”的登录表单。像如何在Djangos登录表单中预设用户名?,django,django-forms,django-authentication,Django,Django Forms,Django Authentication,在对现有的解决方案不满之后,我为Django编写了一个OpenId提供程序 如果现在有人想在某处验证自己的身份,并且需要登录,我想显示用户名预设为“abc”的登录表单。像redirect\u to\u login这样的标准函数似乎没有为此提供任何参数,而且我也不知道在手动重定向到django.contrib.auth.views.login中的登录视图时如何预设该值。另外,似乎没有简单的方法可以通过模板获得额外的参数值,这样我就可以在那里插入预设值 有没有办法在登录表单中自动填写用户名?如果可能
redirect\u to\u login
这样的标准函数似乎没有为此提供任何参数,而且我也不知道在手动重定向到django.contrib.auth.views.login
中的登录视图时如何预设该值。另外,似乎没有简单的方法可以通过模板获得额外的参数值,这样我就可以在那里插入预设值
有没有办法在登录表单中自动填写用户名?如果可能的话,我希望使用普通的登录视图,而不是复制粘贴所有登录代码,并在必要的更改中进行编辑。解决上述问题的一些方法有:
解决上述问题的一些方法有:
记住,django完全是python,源代码是您的朋友 这是
重定向到登录的原始源代码
def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
"Redirects the user to the login page, passing the given 'next' page"
if not login_url:
login_url = settings.LOGIN_URL
return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next)))
看起来您甚至可以使用一个指向url的链接覆盖登录url,该url包含适当的参数。差不多
return redirect_to_login(login_url=reverse('my_login_view', [], {'username': username}))
您不需要新表单,只需预填充现有的登录表单。记住,django完全是python,源代码是您的朋友
这是重定向到登录的原始源代码
def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
"Redirects the user to the login page, passing the given 'next' page"
if not login_url:
login_url = settings.LOGIN_URL
return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next)))
看起来您甚至可以使用一个指向url的链接覆盖登录url,该url包含适当的参数。差不多
return redirect_to_login(login_url=reverse('my_login_view', [], {'username': username}))
您不需要新表单,只需预填充现有的登录表单