Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Djangos登录表单中预设用户名?_Django_Django Forms_Django Authentication - Fatal编程技术网

如何在Djangos登录表单中预设用户名?

如何在Djangos登录表单中预设用户名?,django,django-forms,django-authentication,Django,Django Forms,Django Authentication,在对现有的解决方案不满之后,我为Django编写了一个OpenId提供程序 如果现在有人想在某处验证自己的身份,并且需要登录,我想显示用户名预设为“abc”的登录表单。像redirect\u to\u login这样的标准函数似乎没有为此提供任何参数,而且我也不知道在手动重定向到django.contrib.auth.views.login中的登录视图时如何预设该值。另外,似乎没有简单的方法可以通过模板获得额外的参数值,这样我就可以在那里插入预设值 有没有办法在登录表单中自动填写用户名?如果可能

在对现有的解决方案不满之后,我为Django编写了一个OpenId提供程序

如果现在有人想在某处验证自己的身份,并且需要登录,我想显示用户名预设为“abc”的登录表单。像
redirect\u to\u login
这样的标准函数似乎没有为此提供任何参数,而且我也不知道在手动重定向到
django.contrib.auth.views.login
中的登录视图时如何预设该值。另外,似乎没有简单的方法可以通过模板获得额外的参数值,这样我就可以在那里插入预设值


有没有办法在登录表单中自动填写用户名?如果可能的话,我希望使用普通的登录视图,而不是复制粘贴所有登录代码,并在必要的更改中进行编辑。

解决上述问题的一些方法有:

  • 编写您自己的身份验证表单,并在显示前预先填充用户名

  • 使用javascript从url中删除用户名并将其放入表单中


  • 解决上述问题的一些方法有:

  • 编写您自己的身份验证表单,并在显示前预先填充用户名

  • 使用javascript从url中删除用户名并将其放入表单中


  • 记住,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}))
    
    您不需要新表单,只需预填充现有的登录表单