Django URL Dispatcher可变数量的组件

时间:2012-10-24 09:32:25

标签: django django-views django-urls

基本上我有一个接受不同操作和不同数量参数的视图。这之前是在以下状态下工作:

url(r'^items/(?P<op>[a-zA-Z0-9]+)/(?P<id>[0-9]+)$', login_required(ItemOpView.as_view()), name='my.views.item_op'),

始终为视图提供kwargs['op']kwargs['id']。这允许使用以下URL:

  • 项/删除/ 1
  • 项/显示/ 1
  • 项/隐藏/ 1

但是我想修改规则以接受以下内容:

  • items / relocate / 1/2意味着我也希望kwargs['id2']

我试图通过以下规则执行此操作:

url(r'^items/(?P<op>[a-zA-Z0-9]+)/(?P<id>[0-9]+)(?/)(?P<id2>[0-9]+)$', login_required(ItemOpView.as_view()), name='my.views.item_op'),

然而,这不起作用,只给出了404。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

只需添加其他网址条目:

url(r'^items/(?P<op>[a-zA-Z0-9]+)/(?P<id>[0-9]+)/(?P<id2>[0-9]+)$', login_required(ItemOpView.as_view()), name='my.views.item_op')

并确保您的视图接受第二个参数的默认参数(如None)。