如何根据用户类型导航到django中的不同类视图?

时间:2014-03-13 18:16:35

标签: python django

假设网址如下:www.example.com/<username>,用户有两种类型:常规和高级。我想使用两个不同的视图来生成这两个不同的用户主页。我应该如何编写相应的urls.pyviews.py文件来实现此目的。顺便说一句,两个不同的视图已经设置,都是基于类的视图,我只是不知道如何根据用户类型进行此切换。

1 个答案:

答案 0 :(得分:3)

你可以有一个中间视图&#34;发送&#34;正确的观点。这样,你仍然可以有一个网址。所以只需将一个网址指向此视图:

class HomePageDispatchView(View):
    def dispatch(self, request, *args, **kwargs):
        if request.user.type == PREMIUM:
            return PremiumHomePage.as_view()(request, *args, **kwargs)
        else:
            return RegularHomePage.as_view()(request, *args, **kwargs)