登录django后如何转到另一个页面

Posted

技术标签:

【中文标题】登录django后如何转到另一个页面【英文标题】:How to go to another page after login in django 【发布时间】:2014-03-21 00:48:09 【问题描述】:

我仍然想知道如何在成功登录后重定向。目前它只是将我重定向到 django 管理页面,可能是默认情况下。 这当然不是我想要的,我想使用自定义模板重定向到自定义视图 - 当然是我使用 @login_required 的地方装饰师。这是我的views.py:

from django.shortcuts import render
from programm.models import *
from django.contrib.auth.decorators import login_required

def index(request):
        return render(request, 'index.html')

@login_required(login_url='/login/')
def liste(request):
        return render(request, 'liste.html', 'lObj': learningObjective.objects.all())

这是我的登录模板

<!DOCTYPE html>
<html lang=" LANGUAGE_CODE|default:"de-de" " >
<head>
<title>% block title %% endblock %</title>
</head>
<body>

% if form.errors %
<p>Your username and password didn't match. Please try again.</p>
% endif %

<form method="post" action="% url 'django.contrib.auth.views.login' %">
% csrf_token %

<div class = "table">
<table>
<tr>
    </td><td><p><u>Login Seite</u></p></td>
</tr>
<tr>
    <td> form.username.label_tag </td>
    <td> form.username </td>
</tr>
<tr>
    <td> form.password.label_tag </td>
    <td> form.password </td>
</tr>
<tr>
<td><input type="submit" value="/programm/liste.html" /></td>
<input type="hidden" name="next" value="/programm/liste.html" method="post"/>
</form>
</tr>
<table>
</div>
</body>
</html>

这是我想要被重定向到模板,它也获得了@login_required 装饰器:

<!DOCTYPE html>

<html>
<head>
% load staticfiles %
 <link rel="stylesheet" type="text/css" href="% static 'programm/style.css' %" />
<div class = "title">
<h1 align = "center">Lernziele</h1>
</div>
</head>

<body>
<div class="liste">
 % for lObj_ in lObj %
  <li>Lernziel:  lObj_.learningObjectives </li>
 % endfor %
</div>
</body>
</html>

这是我的 urls.py

from django.conf.urls import patterns, url
from programm import views
from django.conf import settings

urlpatterns = patterns('',
        url(r'^$', views.index, name = 'index'),
        url(r'^liste.html$', views.liste, name = 'liste'),
)

结构如下: 项目名 _> Appname(programm) _> 模板 _> index.html, liste.html, registration(direction) _> login .html

【问题讨论】:

向我们展示您的登录视图。你可能只需要一个 HttpResponseRedirect 而不是渲染。 好吧,这对我来说会很尴尬。我没想到会写自己的登录视图。我一直认为,当我使用 @login_required 装饰器时,Django 的自定义模板正在加载,我可以使用该模板登录。那么正确的方法是什么? 看看docs.djangoproject.com/en/dev/topics/auth/default/… 【参考方案1】:

为什么不在 settings.py 中使用变量:

LOGIN_REDIRECT_URL = '/whatever/page/'

当然,如果您需要在每次登录时始终将所有人重定向到同一页面。

【讨论】:

以上是关于登录django后如何转到另一个页面的主要内容,如果未能解决你的问题,请参考以下文章

php的curl如何获取一个跳转页面后的数据啊

跳转到另一个网页时自动登录

java 如何在登录之后跳转到之前想跳转的页面?

如何在 django 中从一页转到另一页

django 重定向

如何让不同的用户登录/注册后跳转到不同的页面