我必须对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
答案 0 :(得分:1)
在这种情况下,附加到URL的查询字符串参数都不会与您的模式匹配,因为模式根本不相同。
您需要在“主页”视图中选择这些内容:
[variable] = request.GET.get([key])
要获得您期望的网址格式,您必须对视图执行POST操作以处理表单以获取值,然后重定向到'/ search / [keyword] / [column] / [确切] /