【发布时间】:2019-01-15 22:40:34
【问题描述】:
我正在尝试在我的 django 2+ 应用程序中实现指向一个基于类的视图的多个 URL 模式。
我的网址:
path('<slug:slug>', views.OfferDetailView.as_view(), name='show'),
path('<slug:slug>/<str:status>', views.OfferDetailView.as_view(), name='show'),
path('<slug:slug>/<str:status>/<uuid:application>', views.OfferDetailView.as_view(), name='show'),
path('<slug:slug>/<uuid:application>', views.OfferDetailView.as_view(), name='show'),
假设“ABC12”是我的 slug。 我的预期行为是什么:
- 当用户进入 /ABC12 时:view 的 kwargs 状态和 application 是 Nones,slug 是 ABC12
- 当用户进入 /ABC12/new 时:view 的 kwargs 状态为“new”,application 为 None,slug 为 ABC12
- 当用户进入 /ABC12/new/6eba5dbf-220b-4913-a359-f93fab3153d1 时:视图的 kwargs 状态为“new”,应用程序 kwarg 为“ 6eba5dbf-220b-4913-a359-f93fab3153d1", slug 是 ABC12
- 当用户进入/ABC12/6eba5dbf-220b-4913-a359-f93fab3153d1时:视图的kwargs状态为None,应用kwarg为“6eba5dbf-220b- 4913-a359-f93fab3153d1", slug 是 ABC12
但是,当我输入 url 时: /ABC12/6eba5dbf-220b-4913-a359-f93fab3153d1
kwarg 是:
{'slug': 'ABC12', 'status': '6eba5dbf-220b-4913-a359-f93fab3153d1'}
(我预计不应该有 status kwarg,'application' kwarg 应该是“6eba5dbf-220b-4913-a359-f93fab3153d1”)。
我怎样才能做到这一点?我不想以多个视图结束。
【问题讨论】:
标签: django django-urls django-2.0