2012-07-05 57 views
1

我发现了一个问题,并追踪到url conf。我试图执行一个ajax发布到/ gallery/add页面,该页面向数据库中添加一条新记录。Django的网址和应用程序的网址与阿贾克斯

本来我在我的应用程序中添加了一个urls.py,然后'从根urls.py'包含它,但在ajax文章(出现/ gallery /刚刚从日志记录中返回)失败。

然后我恢复到只是根urls.py,它按照我的预期工作。

所以问题是这些urlconf是否相等?

(A)

# ./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 
) 

(B)

# ./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 
) 

回答

3

在第二个例子中,你仍然需要^,否则第一个正则表达式将只匹配了一个结尾的任何旧的字符串(由于到$),这当然都是他们:)

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

urlpatterns = patterns('', 
    (r'^$', 'gallery.views.home'), 
    (r'^add$', 'gallery.views.add'), 
)