如何将命名参数传递给Django视图方法?

时间:2013-09-04 15:12:12

标签: django django-urls

我有一个带有两个附加参数的视图方法:

def foo(request, email, token):
    ...

我需要使用reverse生成网址:

    ...
    url = urlresolvers.reverse(
        'my_app.views.foo',
        kwargs={ 'token': <token>, 'email': <email> })
  1. 我使用reverse是否合理/可接受,
  2. foo的网址格式是什么样的?

2 个答案:

答案 0 :(得分:3)

1 - 是的,就目前而言,但当然没有urlpattern就会失败。您可以使用args或kwargs,具体取决于您的情况。在这里你可以使用args,因为它们都是你视图函数所需的args。

2 - 这是一个让你去的urlpattern,但正则表达式只是一个例子,因为我不知道你的正则表达式需要什么。

url(r'^/(?P<email>[-\w]+)/(?P<token>\d{1,2})/$', 'views.foo', name='foo'),

命名网址是养成习惯的好模式。您也可以将名称传递给反向函数:

url = urlresolvers.reverse(
    'foo',
    args=['<email>', '<token>']

答案 1 :(得分:0)

  1. 您可以在URLconf中编写它。 您可能需要查看Django docs
  2. 但是,如果您通过the tutorial,可能会更好。第三部分介绍了如何记下您网站的URL方案。