Django中重定向和url的反向解析

在Django2.x的版本中,使用重定向的时候可能会出现‘set’ object is not reversible的错误,这个时候我们就需要查看相对应的应用里面urls的模板了:

正确的

from django.urls import path, re_path

from app import views
app_name = 'app'
urlpatterns = [
    re_path(r'^hello/(?P<year>\d+)/', views.hello),
    path('login/', views.login),
    path('reg/', views.reg, name='reg'),
]

报错的

from django.urls import path, re_path

from app import views
app_name = 'app'
urlpatterns = {
    re_path(r'^hello/(?P<year>\d+)/', views.hello),
    path('login/', views.login),
    path('reg/', views.reg, name='reg'),
}

如果不仔细看的话,是看不出来的..唯一的不同就是在urlpatterns =后面正确的后面是”[]”中括号,报错的后面是”{}”花括号,将”{}”花括号改为”[]”改为中括号就可以完美的解决这问题了

还有一种错误是我们在使用url反向解析的时候,乍一看都没错,可是他却报了错:Specifying a namespace in include()withou providing an app_name这个时候我们需要在你所创建的应用下的urls里面的urlpatterns =的上面添加一行app_name = '应用名',看上面的那个就是了

本博客所有文章如无特别注明均为原创。作者:止语复制或转载请以超链接形式注明转自 止语
原文地址《Django中重定向和url的反向解析

相关推荐

网友评论(0)