use*_*364 10 django django-views
我有这个urlConf和它工作正常,同时使用尾部斜杠访问:
urlpatterns = patterns('', url(r'^allvideo/$','my.views.allvideo'))
Run Code Online (Sandbox Code Playgroud)
即使
APPEND_SLASH=True
Run Code Online (Sandbox Code Playgroud)
它给我属性错误"'str'对象没有属性'resolve'",当请求使用缺少尾部斜杠时
任何的想法??
Ian*_*and 15
APPEND_SLASH不会无条件地发生 - 只有在尝试所有现有的URL模式(以及相关视图,如果匹配的话)之后,它才会生效,Django即将返回404.
如果是这种情况,并且原始请求最后没有斜杠,那么Django会检查是否有任何URL模式与尾部斜杠匹配.如果是这样,它会发出HTTP重定向.
如果您的任何URL模式与原始请求匹配(没有斜杠),那么Django将首先尝试该模式.如果这会引发异常,那么你会看到它(我怀疑这就是发生的事情).Django永远不会发出重定向.
不确定根本原因是什么,但这些可能会帮助您绕过它或缩小范围:
(1) 您是否尝试过使用实际的视图函数作为参数(而不是字符串):
from my.views import allvideo
urlpatterns = patterns('', url(r'^allvideo/$',allvideo))
Run Code Online (Sandbox Code Playgroud)
(2) 或者使用 url 函数跳过:
urlpatterns = patterns('', (r'^allvideo/$','my.views.allvideo'))
Run Code Online (Sandbox Code Playgroud)