本文主要是介绍url导致的Forbidden (CSRF token missing or incorrect.),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在用Django做项目,遇到的一个问题。
之前配置的url如下:
re_path('^aaa/(?P<pk>\d+)/$', categories.delete, name='aaa_view'),path('aaa/data_import/', categories.data_import, name='aaa_data_import'),
此时访问data_import页面,进行操作都正常。
之后将url的正则匹配改为如下:
re_path('^aaa/(?P<pk>\w+)/$', categories.delete, name='aaa_view'),path('aaa/data_import/', categories.data_import, name='aaa_data_import'),
再访问之前的data_import页面,会报下边的错误信息。
网上查了一下,很多解决方法都是基于前端的方式,但我遇到的这种情况,属于之前可用,说明前端处理以及配置是正确的。
之前以为将\d+改为\w+影响了csrf的处理,但找了官方文档,未发现明确说明。
但这里分明是上一条url影响了下一条,将views里的返回配置也进行了各种验证,依然存在问题。
经过反复的debug,将aaa_view的url注释掉,访问data_import页面也正常
# re_path('^aaa/(?P<pk>\w+)/$', categories.delete, name='aaa_view'),path('aaa/data_import/', categories.data_import, name='aaa_data_import'),
此时的确感觉无解了,后来突然灵光一闪,既然是前一条影响后一条,那将它们换个位置吧,如下
path('aaa/data_import/', categories.data_import, name='aaa_data_import'),re_path('^aaa/(?P<pk>\w+)/$', categories.delete, name='aaa_view'),
然后莫名的好了,应该与url的机制有关,目前不想深挖,此处Mark下,后边有空了进一步的研究下。
这篇关于url导致的Forbidden (CSRF token missing or incorrect.)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!