Django清理URL和表单数据

时间:2013-05-09 00:02:00

标签: python django clean-urls

我必须对django中如何操作GET变量有一些误解,但是这里有:

(1)我有一个搜索表单,其中包含两个必需参数和一个可选参数。

表单发送到/ search / like so:

<form action="/search/" method="GET">

然而,由此产生的网址看起来像

http://mylifeforregex:8000/search/?keyword=keyword&columns=name&exact=on

我无法在我的urlpatterns中将其与以下行匹配:

url(r'^search/(?P<keyword>\w+)(?P<columns>\w+)(?P<exact>\w+)?$', 'home', name='searched')

所以,如果有人能告诉我这个正则表达式到底出错了什么,我们将不胜感激。

(2)我个人提出的更有趣的问题是:有什么方法可以改变表单数据的呈现方式吗?是否可以将表单查询结果放在看起来像

的URL中
http://halp:8000/search/keywordquery/columnquery/optionmarked

1 个答案:

答案 0 :(得分:1)

在这种情况下,附加到URL的查询字符串参数都不会与您的模式匹配,因为模式根本不相同。

您需要在“主页”视图中选择这些内容:

[variable] = request.GET.get([key])

要获得您期望的网址格式,您必须对视图执行POST操作以处理表单以获取值,然后重定向到'/ search / [keyword] / [column] / [确切] /