在django urls.py中获取数据而不是传递给视图

时间:2014-07-23 22:32:50

标签: python regex django

我很难搞清楚如何解析我的网址获取数据并将其发送到正确的视图。

我有一个只有搜索输入的搜索视图:

模板/ search.html

<form action="http://domain.com/schools/search/" method="GET" >
    <input type="text" name = "q_word">
    <input type="submit" value="Search"/>
</form>

当用户输入搜索词时,我想将该数据发送到另一个视图以解析并在我编写的地理编码函数中使用。这是我的urls.py:

url(r'^schools/search/$', school_views.find_school, name="find_school"),
url(r'^schools/search/(?P<address>[\w ]+)$', school_views.geo_locate, name="geo_locate"),

我想从URL中获取GET数据(在他们输入信息后),并将其作为地址参数传递给我的school_views.geo_locate函数。

当您手动输入以下网址时,此设置效果很好:学校/搜索/ 150%20main%20Street

但是当用户提交任何表单数据时,传递的URL是 / schools / search /?q_word = 150 + west + main ,我刚刚回到我的搜索模板。

我认为我的正则表达式需要在我的第二个url参数中进行调整,但我只是在提交后继续返回搜索页面,没有数据进入我的geo_locate视图。这是一个URL问题吗?

1 个答案:

答案 0 :(得分:3)

GET数据未在URL参数中传递。不要试图在正则表达式中捕获它。只需从视图中的request.GET获取它。