为什么不调用视图方法?
Why is views method not being invoked?
我在目录 (RazorWare_Web) 中有一个带有 urls.py
的 Web 目录,如下所示:
from RazorWare_Web.views import home
urlpatterns = patterns('',
url('/', home.index, name="index"),
url(r'^razorware/', include("RazorCRM_App.urls")),
url(r'^admin/', include(admin.site.urls)),
)
所以在我的浏览器中,http://localhost:8000/razorware
导航到 home
视图的 index()
方法。我对此有点困惑。我希望 http://localhost:8000/
会导航到 home
。相反,这会产生 url 未找到错误页面。
除此之外,当我从我的 HTML 页面执行 $.getJSON
调用时,真正的问题(我怀疑它与上述问题有关)存在。首先,实际的应用程序存在于兄弟目录下,RazorCRM_App,具有以下内容:
from RazorCRM_App.views import queries
urlpatterns = [
url(r'query_locale', queries.query_locales, name="query_locales"),
]
当我执行以下脚本时:
function query_locale_by_zip(){
var post_code = txt_postal.val();
$.getJSON("query_locale", {post_code: post_code}, function(result){
console.log("[APP] query locale for: " + post_code + " [returned: " + result.success + "]")
});
}
...未调用 queries.query_locales
方法。但是,我确实从控制台得到以下输出:
[25/Feb/2015 15:20:51] "GET /razorware/query_locale?post_code=9
HTTP/1.1" 200
[25/Feb/2015 15:20:51] "GET
/razorware/query_locale?post_code=92 HTTP/1.1" 200
[25/Feb/2015
15:20:51] "GET /razorware/query_locale?post_code=920 HTTP/1.1" 200
[25/Feb/2015 15:20:52] "GET
/razorware/query_locale?post_code=9205 HTTP/1.1" 200
[25/Feb/2015 15:20:52] "GET /razorware/query_locale?post_code=92058
HTTP/1.1" 200
如果有消息说找不到url,我可能会理解。但这看起来很奇怪。
使用 Django 版本 1.7.1 和 Python 3.4.2
你的根 url 应该看起来像 url(r'^$', home.index, name="index")
而你的 query_locale url 应该像 url(r'^query_locale/$', queries.query_locales, name="query_locales")
.
url dispatcher 有关于 url 如何工作的广泛文档。
我在目录 (RazorWare_Web) 中有一个带有 urls.py
的 Web 目录,如下所示:
from RazorWare_Web.views import home
urlpatterns = patterns('',
url('/', home.index, name="index"),
url(r'^razorware/', include("RazorCRM_App.urls")),
url(r'^admin/', include(admin.site.urls)),
)
所以在我的浏览器中,http://localhost:8000/razorware
导航到 home
视图的 index()
方法。我对此有点困惑。我希望 http://localhost:8000/
会导航到 home
。相反,这会产生 url 未找到错误页面。
除此之外,当我从我的 HTML 页面执行 $.getJSON
调用时,真正的问题(我怀疑它与上述问题有关)存在。首先,实际的应用程序存在于兄弟目录下,RazorCRM_App,具有以下内容:
from RazorCRM_App.views import queries
urlpatterns = [
url(r'query_locale', queries.query_locales, name="query_locales"),
]
当我执行以下脚本时:
function query_locale_by_zip(){
var post_code = txt_postal.val();
$.getJSON("query_locale", {post_code: post_code}, function(result){
console.log("[APP] query locale for: " + post_code + " [returned: " + result.success + "]")
});
}
...未调用 queries.query_locales
方法。但是,我确实从控制台得到以下输出:
[25/Feb/2015 15:20:51] "GET /razorware/query_locale?post_code=9 HTTP/1.1" 200
[25/Feb/2015 15:20:51] "GET /razorware/query_locale?post_code=92 HTTP/1.1" 200
[25/Feb/2015 15:20:51] "GET /razorware/query_locale?post_code=920 HTTP/1.1" 200
[25/Feb/2015 15:20:52] "GET /razorware/query_locale?post_code=9205 HTTP/1.1" 200
[25/Feb/2015 15:20:52] "GET /razorware/query_locale?post_code=92058 HTTP/1.1" 200
如果有消息说找不到url,我可能会理解。但这看起来很奇怪。
使用 Django 版本 1.7.1 和 Python 3.4.2
你的根 url 应该看起来像 url(r'^$', home.index, name="index")
而你的 query_locale url 应该像 url(r'^query_locale/$', queries.query_locales, name="query_locales")
.
url dispatcher 有关于 url 如何工作的广泛文档。