所以我有一个CBV(A),CBV(B)和一个像
这样的网址regex=r'^(?P<slug>[-\w]+)/(?P<app>[-\w]+)'
我想用(A)读取slug和app参数,然后根据这些参数,将其重定向到适当的CBV,可能(B)。我不想用HttpResponseRedirect或类似的东西重定向用户,而是基本上运行另一个CBV,好像它是被调用的那个。如何从CBV(A)直接/内部运行另一个CBV,如(B)?
答案 0 :(得分:5)
你可以这样称呼它:
class CBViewA(View):
def dispatch(self, request, *args, **kwargs):
if kwargs['slug'] = "some slug":
return CBViewB.as_view()(request, *args, **kwargs)
else:
return super(CBViewA, self).dispatch(request, *args, **kwargs)