django管理员登录突然要求使用csrf令牌
几分钟前,我轻松登录了django管理控制台。我必须更改某些以超级用户身份登录时导致此错误的地方:
禁止(403)CSRF验证失败。请求中止。
当我整夜登录时,此错误使我措手不及。为什么我突然需要一个CSRF令牌进行管理员登录?你会认为登录表单已经具有该功能。这是我的admin.py:
from django.contrib import adminfrom accounts.models import Image, Category, UserProfile
class ImageAdmin(admin.ModelAdmin):
list_display = ["__unicode__", "title", "created"]
admin.site.register(Image, GenericImageAdmin)
class CategoryAdmin(admin.ModelAdmin):
list_display = ["category"]
admin.site.register(Category, CategoryAdmin)
admin.site.register(UserProfile)
回答:
管理员登录通常确实需要一个csrf令牌,但是通常所有这些都需要你注意。
- 检查浏览器的cookie,以查看是否存在csrf令牌
- 尝试清除Cookie并刷新
- 检查以确保你具有
django.middleware.csrf.CsrfViewMiddleware
中间件 - 检查你是否开启
https
或设置中CSRF_COOKIE_SECURE=False
(默认设置),否则csrf cookie存在但不会发送。更改后清除饼干CSRF_COOKIE_SECURE
。
以上是 django管理员登录突然要求使用csrf令牌 的全部内容, 来源链接: utcz.com/qa/399184.html