从一个星期以来,我搜索的时候没有任何问题的答案。我不知道我是否以良好的方式继续进行,但我尝试拥有一个如下所示的网址:article/title/0/search=ad/2017-08-01/2017-08-09/
;参数是(大括号):article/{filter}/{page}/search={search}/{date1}/{date2}/
。Django的url多个参数
我url.py正则表达式是:
url(r'article/(?P<filter>.+)/(?P<page>\d+)/(?:search=(?P<search>.*)/)?(?:(?P<date1>(\d{4}-\d{1,2}-\d{1,2})?)/)(?:(?P<date2>(\d{4}-\d{1,2}-\d{1,2})?)/)?$')
当值search
,date1
和date2
被填充,我的网址认为{searched word}/2017-08-01/2017-08-09/
是search
值。
当search
,date1
和date2
是空的,我的链接是这样的:article/title/0/search=///
。当日期填入article/title/0/search=/2017-08-01/2017-08-09/
。
在我的模板,我需要我的网址是这样的:{% url "view" filter page search date1 date2 %}
有人能帮助我,纠正我,如果我在错误的方式做到了?
编辑
我会尝试在其他的方式来重新问我的问题:
在我的模板,在具有有3个领域不需要search, date1 and date2
形式,使他们能够无(这是我的问题)。我有一些链接需要更改视图参数filter, page
中的一个,并在url中保留字段参数。 当表单POST到我的视图(实际上是这样的def AllArticle(request, filter, page, search="", date1="", date2="")
)时,我用它们来过滤我的ArticleModel对象(我不需要帮助,已经完成并且工作)。
根据@Cory_Madden,我从来没有使用过这种方法,我不知道如何使用它。我只是试了一下,django返回了一个MultiValueDictKeyError。
您可以更具体地了解您的模型以及您想要过滤或搜索的内容。请更清楚地发布您的模型和您的过滤器要求 –
无论您使用'?'分隔的GET参数是否被*'not *'看作您的'urls.py'。只有url本身。 –