- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Django 中遇到 HttpResponseRedirect 问题。看来,无论我尝试什么参数,它要么抛出错误,要么在不更改 URL 的情况下进行重定向。我在自定义 login_user View 上使用它,并且我希望地址栏中的 URL 在重定向后更改。如果我使用重定向而不是 HttpResponseRedirect,它不会改变。无论哪种方式,我都可以让它提供正确的模板,但 URL 保持不变。作为 Django 的新手,如果有人可以向我解释如何执行此操作以及为什么我当前的代码不起作用,将会很有帮助。我在 Stack Exchange 上看到了几个与我类似的问题,但答案没有帮助。
这是我的views.py的相关部分(请注意,由于复制和粘贴到此处,缩进变得很奇怪,这并不是错误的原因)。
from django.http import *
from django.contrib.auth import authenticate, login, logout
def login_user(request):
logout(request)
username = password = ''
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect('dashboard')
else:
state = "Your account is not active, please contact the app administrator."
else:
state = "Your username and/or password were incorrect."
state = "Please log in below..."
context = RequestContext(request, {
'state': state,
'username': username,
})
return render_to_response('bank/auth.html', {}, context)
仪表板是另一个 View 的名称,它在我的索引 View 的重定向中工作正常。我也尝试过对网址进行硬编码,但这也不起作用。有什么建议么??谢谢。
最佳答案
如果您使用 HttpResponseRedirect
,则必须提供 url,而不是 url 的名称。
您可以使用 reverse
获取 URL :
from django.core.urlresolvers import reverse
def my_view(request):
...
return HttpResponseRedirect(reverse('dashboard'))
或使用redirect
快捷方式。
from django.shortcuts import redirect
def my_view(request):
...
return redirect('dashboard')
如果使用上述任一方法都不起作用,则 View 中的其他位置可能存在错误。很难判断在哪里,因为缩进不正确。尝试添加一些日志记录或打印语句,看看您是否真的将重定向返回到您认为的位置。
关于django - HttpResponseRedirect 不工作 Django 1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537738/
我想在 Django 中使用类似于 render_to_response 函数的东西,但要使用 HttpResponseRedirect。 这是我的 views.py 用于 render_to_res
有人可以解释一下 Django Tutorial Part 4 是怎么回事吗? 具体来说, map 功能是如何工作的? 我了解 URL 不应在 View 函数中进行硬编码。 return HttpRe
我想将一个 int 参数 (user_id) 从一个登录 View 传递到另一个 View 。这在 HttpResponseRedirect 中可能吗?我尝试这样的事情: return HttpRes
当我尝试反转时,出现错误“* 之后的_reverse_with_prefix() 参数必须是一个序列,而不是整数”。我之前在 View 中对参数进行了硬编码,但正在尝试使其动态化。有什么建议吗? 查看
我已经创建了一个基本的联系表单,当用户提交信息时,它应该重定向到“谢谢”页面。 views.py: def contact(request): # if no errors... re
在向同一页面提交一个赞按钮后,我试图重定向我的页面,但我不断收到 NoReverseMatch at /score/like/2 这是网址 urlpatterns = [ path('user
我正在尝试获取 Django 站点的本地副本。生产站点在登录时工作正常,但我的本地实例在完成登录表单后不会重定向到个人资料页面。 这是login_page观点: def login_page(requ
我是 django (1.5.1) 的新手,对 HttpResponseRedirect 有点困惑。如果我理解正确,需要一个静态字符串,当你希望它动态重定向时,你会得到一个reverse()或一个ge
每当我的 django 站点在 View 对象中调用“HttpResponseRedirect”以重定向到另一个 url 时,它就会剥 ionic 域并返回到主站点。我正在 Django 的 SVN
我是 django (1.5.1) 的新手,对 HttpResponseRedirect 有点不适应。如果我理解正确需要一个静态字符串,并且当您希望它动态重定向时,您会得到一个 reverse() 或
每当我的 django 站点在 View 对象中调用“HttpResponseRedirect”以重定向到另一个 url 时,它就会剥 ionic 域并返回到主站点。我正在 Django 的 SVN
我正在使用以下中间件片段: class AjaxRedirect(object): """ Instead of returning a 302 for AJAX requests,
我正在使用 jquery 对话框打开 django 表单,提交表单后我将其重定向到不同的 View 。重定向的 URL 不是在浏览器中重定向,而是在浏览器控制台中打印。 我的返回语句是return H
我有一个添加和编辑 Meeting 对象的 View ,并且我将在保存 Meeting 对象后显示该对象的参与者列表,我该如何使用 HttpResponseRedirect 返回参与者列表?我认为不可
基本上,我试图将未登录的人重定向到登录页面。 我目前使用的是: return render_to_response('login.html', context_instance=RequestCont
我是 Python/Django 和整体编程的新手。我需要有关 HttpResponseRedirect 的帮助,因为它在我的登录 View 中不起作用。它确实适用于我的主视图文件,但不是我想要的方式
我正在用 Django 教程做 Tango,我已经成功地完成了教程,但是我在 official Django Polls tutorial 中注意到,以下内容: def vote(request, q
我有这个设置 session 变量的重定向 View 。但就好像 session 是flush ed 在被重定向到的 View 被调用之前,因为整个 session 在那里是空的。 (顺便说一句,这是
所以这不会太难,但我无法弄清楚...... 我希望我在 django 中的表单(位于 /file_upload/ )上传文件,将其添加到数据库,然后重定向到一个新页面,其中参数是我所拥有的字段的 id
Django 1.9.6 我想编写一些单元测试来检查重定向。 你能帮我理解我在这里做错了什么吗? 先感谢您。 考试: from django.test import TestCase from dja
我是一名优秀的程序员,十分优秀!