Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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
Python Django 1.6:登录不工作后重定向到最后一页_Python_Django_Redirect_Login - Fatal编程技术网

Python Django 1.6:登录不工作后重定向到最后一页

Python Django 1.6:登录不工作后重定向到最后一页,python,django,redirect,login,Python,Django,Redirect,Login,每当提示用户登录时,我希望用户在成功登录后重定向到最后一页。目前,它只是重定向到索引页面。我知道这个问题已经被问过好几次了,也尝试过多种方法,但都不管用。我也试过这样做 而且它不起作用,因为大部分内容在1.6中已经被弃用了。现在我有了下面的代码,它告诉我,'url'需要一个非空的第一个参数。Django 1.5中的语法已更改,请参阅文档。 在线 129: 这就是我到目前为止所做的 url.py url(r'^login/$', 'django.contrib.auth.views.login',

每当提示用户登录时,我希望用户在成功登录后重定向到最后一页。目前,它只是重定向到索引页面。我知道这个问题已经被问过好几次了,也尝试过多种方法,但都不管用。我也试过这样做 而且它不起作用,因为大部分内容在1.6中已经被弃用了。现在我有了下面的代码,它告诉我,
'url'需要一个非空的第一个参数。Django 1.5中的语法已更改,请参阅文档。

在线

129:

这就是我到目前为止所做的

url.py

url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'meddy1/login.html'}, name="login")
login.html

<form method="post" action="{% url 'django.contrib.auth.views.login' %}"> {% csrf_token %}
    <input type="text" class="form-control" id="username" placeholder="Username" name="username">
    <input type="password" class="form-control" id="inputPassword" placeholder="Password" name="password">
    <button class="btn btn-primary" type="submit" name="submit" id="ss-submit">LOG IN</button>
    <input type="hidden" name="next" value="{{ next }}" />

  </form>

要使以下模板代码正常工作:

<a href="{% url django.contrib.auth.views.login %}?next={{request.path}}">Link</a>
  • 您必须具有解析为
    注册/login.html
    的模板,或者您可以在url配置中指定特定的模板路径(必须存在):

    url(r'^login/$',
        'django.contrib.auth.views.login',
        {'template_name': '<your template>'}
        )
    
    这会自动将
    request
    变量get添加到模板上下文中

  • 必须使用
    RequestContext
    呈现模板。有很多方法可以做到这一点,但最简单的方法是:

    from django.shortcuts import render
    
    def view(request):
        ...
        return render(request, '<template>', {<other context variables>})
    
    从django.exe导入渲染
    def视图(请求):
    ...
    返回呈现(请求“”,{})
    
    使用
    RequestContext
    会导致
    django.core.context\u处理器.request
    上下文处理器运行


  • {%url'登录“%}?下一步={{request.path}
    谢谢!我不再收到错误,但仍无法重定向到最后一页。显示您的查看代码。您可能没有使用
    RequestContent
    ,因此在模板上下文中没有
    请求
    。我已经添加了上面的视图。好的,您使用的是
    RequestContext
    (通过
    渲染
    快捷方式),因此您一定缺少
    django.core.context\u处理器.request
    ,从
    settings.py中的
    TEMPLATE\u CONTEXT\u处理器
    ,非常感谢。我真的很感激你详细的回答!
    url(r'^login/$', 'django.contrib.auth.views.login')
    
    url(r'^login/$',
        'django.contrib.auth.views.login',
        {'template_name': '<your template>'}
        )
    
    TEMPLATE_CONTEXT_PROCESSORS = (
        'django.core.context_processors.request',
        ...
        )
    
    from django.shortcuts import render
    
    def view(request):
        ...
        return render(request, '<template>', {<other context variables>})