1

我发现了一个问题并将其跟踪到 url conf。我正在尝试向 /gallery/add 页面执行 ajax 发布,该页面将新记录添加到数据库中。

最初我在我的应用程序中添加了一个 urls.py,然后从根 urls.py 中“包含”它,但是在 ajax 发布期间失败了(似乎 /gallery/ 刚刚从日志记录中返回)。

然后我恢复到根 urls.py 并且它按我预期的那样工作。

所以问题是这些 urlconfs 是否等效?

(一种)

# ./urls.py
from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^gallery$', 'gallery.views.home'),
    (r'^gallery/add$', 'gallery.views.add'), # ajax post works with this one
)

(乙)

# ./urls.py
from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^gallery/', include('gallery.urls')),
)

# ./gallery/urls.py
from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'$', 'gallery.views.home'),
    (r'add$', 'gallery.views.add'), # ajax request doesn't work, instead it goes to gallery.views.home
)
4

1 回答 1

3

在第二个示例中,您仍然需要,^因为否则第一个正则表达式将只匹配任何具有结尾的旧字符串(由于$),这当然是所有这些:)

# ./gallery/urls.py
from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^$', 'gallery.views.home'),
    (r'^add$', 'gallery.views.add'),
)
于 2012-07-05T14:01:25.363 回答