不幸的是,您提供的代码不足以确定您的错误,所以我只能给您指点:
确保您实际上还没有缓存 HTTP 302 REDIRECT 站点,从早期的实验。有关有用的提示,请参见此处。
重置您的浏览器缓存。如果您使用的是 Chrome,您可以通过按 CTRL+SHIFT+J(启动开发者工具)并长按顶部导航 url 栏旁边的重新加载按钮来获得多个缓存清除选项。
对于 Firefox,另请参阅这些有用的建议。
http://support.mozilla.org/es/questions/848678
https://superuser.com/questions/23134/how-to-turn-off-firefox-cache
您刚刚从 <1.3.x 版本升级 Django 吗?我遇到了一种情况,密码被新的默认哈希器重写,因此无法再登录。直接在auth_users
- 表中的数据库中检查密码哈希器的一致性。例如 SHA1 密码哈希以sha1...
确保PASSWORD_HASHERS
在您的settings.py
, 中设置列表的顺序是保留原始项目的主要哈希器 在顶部。即用于最初散列用户密码的散列算法。
是在你的项目url(r'...'...)
的根目录中吗?urls.py
确保在您的部分中'django.contrib.auth'
列出(尽管如果不是这种情况,您应该得到错误)并且必须预先加载的应用程序实际上放在最上面。INSTALLED_APPS
settings.py
根据您的代码片段的注释检查您的TEMPLATE_CONTEXT_PROCESSORS
,MIDDLEWARE_CLASSES
在 settings.py 中的设置,并确保它与SessionMiddleware
您的 Django 版本兼容。
检查项目中所有进行重定向的代码行:
检查:
from django.views.generic.base import RedirectView
url(r'^.*$', RedirectView.as_view(url='<url_to_view>', permanent=False), name='index')
或者
from django.http import HttpResponsePermanentRedirect
HttpResponsePermanentRedirect('url...')
请注意,根据其通用视图范例 ,在 Django 1.5 中,已弃用的redirect_to
函数已替换为。RedirectView
重定向(...)
url('^pattern/$', lambda _: redirect('/redirecttourl/'))
url(r'^pattern$', redirect('example.com')),
url(r'^pattern$', redirect(projectname.views.home)),
(r'^accounts/profile/$', 'redirect_to', {'url': 'generic_account_url'}),
HttpResponseRedirect(....)
HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
- Django 的内置身份验证登录页面包含一个
next
查询字符串。next=
确定登录后返回的页面:
请参阅:http ://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.decorators.login_required
- 检查服务器的 HTTP 访问日志。重定向后登录站点的内容大小是否与重定向前登录相同?
它有助于在登录过程中提供整个 HTTP 访问历史记录。由于您不会在重定向循环中挂起,因此必须遵循比上述两个更多的 HTTP。