django run another class-based view (CBV) in a CBV?

django, django-class-based-views, django-views

Solution

You can call it that way:

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)

Problem

so I have a CBV (A), CBV (B), and a url like ``` regex=r'^(?P<slug>[-\w]+)/(?P<app>[-\w]+)' ``` I want to read in the slug and app parameters with (A) and then based on those, redirect it to an appropriate CBV, possible (B). I don't want to redirect the user with HttpResponseRedirect or anything like that, but instead basically run another CBV as if it were the one being called. How do I run another CBV, like (B), directly/internally from a CBV (A)?

Original source