【问题标题】:Django Urls and App urls with Ajax POST带有 Ajax POST 的 Django 网址和应用程序网址
【发布时间】:2012-07-05 22:48:23
【问题描述】:

我发现了一个问题并将其跟踪到 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
)

(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
)

【问题讨论】:

    标签: ajax django urlconf


    【解决方案1】:

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

    # ./gallery/urls.py
    from django.conf.urls.defaults import *
    
    urlpatterns = patterns('',
        (r'^$', 'gallery.views.home'),
        (r'^add$', 'gallery.views.add'),
    )
    

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 1970-01-01
      • 2011-06-30
      • 2015-09-04
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2017-02-23
      相关资源
      最近更新 更多