django在CBV中运行另一个基于类的视图(CBV)?

Der*_*rek 3 django django-views django-class-based-views

所以我有一个CBV(A),CBV(B)和一个网址

regex=r'^(?P<slug>[-\w]+)/(?P<app>[-\w]+)'
Run Code Online (Sandbox Code Playgroud)

我想用(A)读入slug和app参数,然后根据这些参数将其重定向到适当的CBV,可能是(B)。我不想使用HttpResponseRedirect或类似的东西来重定向用户,而是基本上运行另一个CBV,就像它是被调用的那样。我如何直接/内部从CBV(A)运行另一个CBV,例如(B)?

Vla*_*tov 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)
Run Code Online (Sandbox Code Playgroud)