是否有可能是w的RouteablePageMixin
路线是另一个的子路径?
这是我的代码:
class MyPage(RoutablePageMixin, Page):
@route("foo/")
def foo(self, request):
view = views.FooView.as_view()
return view(request, self)
@route("foo/bar/")
def bar(self, request):
view = views.BarView.as_view()
return view(request, self)
会发生什么:当我访问<page url>/foo/bar/
时,会得到FooView
响应,而我想要的是BarView
响应。
这有可能实现吗?
感谢您的帮助。
路由指定为regular expressions,因此您需要用^
和$
标记开始和结束,以确保URL模式与整个路径匹配,而不是在碰巧包含该路径的任何路径上匹配给定模式作为子字符串。
@route("^foo/$")
@route("^foo/bar/$")
或者,您可以利用以下事实:按照在代码中出现的顺序检查模式,然后将更具体的模式放在第一位:
class MyPage(RoutablePageMixin, Page):
@route("foo/bar/")
def bar(self, request):
view = views.BarView.as_view()
return view(request, self)
@route("foo/")
def foo(self, request):
view = views.FooView.as_view()
return view(request, self)