2012-07-05 24 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'), 
)