一个星期以来,我一直在寻找问题的答案。我不知道我是否以一种好的方式继续,但是我尝试使用一个如下所示的url:article/title/0/search=ad/2017-08-01/2017-08-09/
;其中参数是(在大括号中):article/{filter}/{page}/search={search}/{date1}/{date2}/
。在
我的网址.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
被填充时,我的url认为{searched word}/2017-08-01/2017-08-09/
是{
当search
、date1
和{article/title/0/search=///
。日期填写完毕后article/title/0/search=/2017-08-01/2017-08-09/
。在
在我的模板中,我需要我的url如下:{% url "view" filter page search date1 date2 %}
如果我做错了,有人能帮我改正吗?在
编辑
我会尝试用另一种方式重新问我的问题:
在我的模板中,In have a form有3个字段search, date1 and date2
不需要,因此它们可以是无(这是我的问题)。我有一些链接只需要更改视图参数filter, page
中的一个,并将字段参数保留在url中。
当表单被发布到我的视图(实际上是这样的def AllArticle(request, filter, page, search="", date1="", date2="")
)时,我使用它们来过滤我的ArticleModel对象(我不需要帮助,我已经完成并工作了)。在
据@Cory_Madden称,我以前从未使用过这种方法,也不知道如何使用它。我刚试过,django返回了一个多值dictkeyError。在
这不是使用GET参数的方式。您需要从
request
对象访问它们。假设你有一个基于函数的视图,这就是你如何访问附加到你的URL的GET参数:在本例中,您的url如下所示:
^{pr2}$地址栏中的请求路径如下所示:
并且
request.GET['search']
将返回"search-term"
。在相关问题 更多 >
编程相关推荐