我一定对如何在 Django 中操作 GET 变量有某种误解,但这里是:
(1) 我有一个搜索表单,其中包含两个必需参数和一个可选参数。
表单像这样发送到/search/:
<form action="/search/" method="GET">
但是,由此产生的 url 看起来像
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
请您参考如下方法:
在这种情况下,附加到 URL 的查询字符串参数都不会匹配您的模式,因为模式根本不一样。
您需要在“主页” View 中选择这些:
[variable] = request.GET.get([key])
要获得您期望的 url 模式,您必须对处理表单的 View 执行 POST 以获取值,然后重定向到 '/search/[keyword]/[column]/[准确]/'
