如何在django中为url添加动态参数

时间:2014-05-17 11:17:57

标签: python django url

我有一个网站,我让用户经理为他的帐户。

在他的帐户页面中,它会显示他提交的所有文章。

为了简单起见,我让他可以选择在一个页面中显示多少篇文章。默认情况下只在一个页面中显示10篇文章,它是由django分页功能完成的,如果用户想在一个页面中显示20篇文章页面,我将参数添加到当前网址。

例如:?num=20

然后对于第二页,网址应为?num=20&page=2

问题是,一旦点击页面下一个按钮,网址变为?page = 2,就没有num参数传递给django。

并且我需要传递给django的更多参数,比如只显示体育中的主题文章,所以我应该再添加一个参数,比如

?num=20&sub=sport&page=2

但我怎样才能让它发挥作用?

我所知道的只是给每个参数一个参数,比如

url(_(r'^post/(?P<num>\w+)/(?P<sub>\w+)/(?P<page>\w+)/$'), views.post, ),

我该如何为此设计网址?如果我有大约5个参数需要发布。

1 个答案:

答案 0 :(得分:1)

如果您使用?num=20&sub=sport&page=2之类的网址参数,则可以使用request.GET

print request.GET['num'], request.GET['sub'] request.GET['page']

您可以创建自己的变量,如:

def test_func(request):
   next_page_url = '%s?page=%s' % (request.path, int(request.GET['page'] + 1) if 'page' in request.GET else '%s?page=2' % (request.path)

   return dict(next_page_url=next_page_url)