Django url多参数

2024-04-20 09:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

一个星期以来,我一直在寻找问题的答案。我不知道我是否以一种好的方式继续,但是我尝试使用一个如下所示的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})?)/)?$')

当值searchdate1date2被填充时,我的url认为{searched word}/2017-08-01/2017-08-09/是{}值。在

searchdate1和{}为空时,我的链接如下: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。在


Tags: 答案视图模板urlsearch参数title链接
1条回答
网友
1楼 · 发布于 2024-04-20 09:30:40

这不是使用GET参数的方式。您需要从request对象访问它们。假设你有一个基于函数的视图,这就是你如何访问附加到你的URL的GET参数:

def index(request, name='World'):
    search_param = request.GET['search']
    ...

在本例中,您的url如下所示:

^{pr2}$

地址栏中的请求路径如下所示:

/Joe?search=search-term

并且request.GET['search']将返回"search-term"。在

相关问题 更多 >