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