几分钟前我很容易登录我的django管理控制台.我必须在以超级用户身份登录时导致此错误的某些地方进行了更改:
禁止(403)CSRF验证失败.请求中止.
这个错误让我措手不及,因为我整晚都在登录.为什么我突然需要一个用于管理员登录的csrf令牌?你会认为签到表格已经有了.这是我的admin.py:
from django.contrib import admin
from 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)
Run Code Online (Sandbox Code Playgroud) 大多数SO答案都要求清除cookie并确认中间件类.我已经尝试过了.
Python - 3.4
Django - 1.10
使用VirtualEnv.
我Forbidden (403) CSRF verification failed. Request aborted.在Django管理员登录屏幕上收到错误.我用django 1.9版在pythonanywhere.com上托管了我的网站.
XPp5hAhylAkt27U4SzGPNU7w8SFBJ3RP

UT24544MghHLZi0IrGHQlCcpk1v0SbCy .表单的源代码中提供了相同的值.

XPp5hAhylAkt27U4SzGPNU7w8SFBJ3RP

我已经在中间件类中使用了'django.middleware.csrf.CsrfViewMiddleware'.我清除了浏览器缓存和cookie.甚至重新启动了系统.
我在完全正常工作的不同网站上使用了完全相同的代码.
为什么有不同的csrf-token值?这个问题的解决方案是什么?
更新1:如果我在设置中设置debug = False,它可以正常工作.但是我不能保持它代码是活的.
更新2:经过进一步调查后,我发现某些浏览器cookie csrftoken的值未设置为正确的值,而该值正在响应头中传递.如果我从浏览器中删除cookie并将其从控制台设置为正确值,则发布请求可以正常工作.
更新3:现在我的网络应用程序上的每个帖子请求或表单提交都会发生同样的问题.响应头和源代码中发送的CSRF令牌值与浏览器cookie中设置的值不同.
更新4:设置CSRF_COOKIE_NAME ="csrf_token"也没有帮助.