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

2 番目の例では、まだ が必要です。^そうしないと、最初の正規表現は ( が原因で) 末尾を持つ古い文字列と一致するため$です。もちろん、それはすべてです :)

# ./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 に答える