使用 redirect()重定向时报错TypeError: 'set' object is not reversible,原代码为:
@csrf_exempt
def mystudy(request):
return redirect("/son")
报错如下:
报错分析:
可以先做个初步分析,没有报错404,证明urls.py中的path路径配置的是没有问题的。
其次针对报错类型分析,说是set是不可逆的,分析urls.py中的urlpatterns,当前定义为字典,字典是无序的,所以报错了,改成列表形式的就行。
也就是说把urls.py中的urlpatterns = {}改成urlpatterns = []即可解决问题。
(不过好像Django项目自动生成的urlpatterns就是字典类型的,反正我之前没有改过这个字段)
注意:使用redirect()时,一定要记得将重定向的地址,加入到urls.py中的urlpatterns中,确保直接访问该地址是通的,重定向才能定向过去