2

我一定对如何在 django 中操作 GET 变量有某种误解,但这里是:

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

表单发送到 /search/ 像这样:

<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
4

1 回答 1

1

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

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

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

要获得您期望的 url 模式,您必须对处理表单以获取值的视图执行 POST,然后重定向到 '/search/[keyword]/[column]/[exact]/ '

于 2013-05-09T00:13:47.777 回答