Python 如何在django中根据用户类型导航到不同的类视图?
假设url是这样的:Python 如何在django中根据用户类型导航到不同的类视图?,python,django,Python,Django,假设url是这样的:www.example.com/,用户有两种类型:普通和高级。我想使用两个不同的视图来生成这两个不同的用户主页。我应该如何编写相应的url.py和views.py文件来实现这一点。顺便说一句,这两个不同的视图已经设置好了,都是基于类的视图,我只是不知道如何根据用户类型进行切换。您可以使用一个中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图: class HomePageDispatchView(View): def dispa
www.example.com/
,用户有两种类型:普通和高级。我想使用两个不同的视图来生成这两个不同的用户主页。我应该如何编写相应的url.py
和views.py
文件来实现这一点。顺便说一句,这两个不同的视图已经设置好了,都是基于类的视图,我只是不知道如何根据用户类型进行切换。您可以使用一个中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图:
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)
您可以使用中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图:
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)
您可以使用中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图:
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)
您可以使用中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图:
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)
您是否将用户类型存储在数据库中?如果是,那么我会说这只是一个简单的
If
语句的问题……您是否将用户类型存储在数据库中?如果是,那么我会说这只是一个简单的If
语句的问题……您是否将用户类型存储在数据库中?如果是,那么我会说这只是一个简单的If
语句的问题……您是否将用户类型存储在数据库中?如果是,那么我会说这只是一个简单的If
语句的问题……这实际上与我在这里的答案非常相似:。我经常使用这种模式。它允许代码分开,但使用相同的url。\uuuuu init\uuuuuuuuuu()只接受1个参数(给定3个)
我收到了以下错误消息:(你的url定义是什么样子的?对不起,我又犯了一个错误。现在没问题了。非常感谢!这实际上与我在这里的回答非常相似:。我经常使用这种模式。它允许代码分开,但使用相同的url。\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()正好使用一个参数(给定3个)
我得到了这个错误消息:(你的url定义是什么样子的?对不起,我又犯了一个错误。现在没问题了。非常感谢!这实际上与我在这里的回答非常相似:。我经常使用这种模式。它允许代码分开,但使用相同的url。\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()正好使用一个参数(给定3个)
我得到了这个错误消息:(你的url定义是什么样子的?对不起,我又犯了一个错误。现在没问题了。非常感谢!这实际上与我在这里的回答非常相似:。我经常使用这种模式。它允许代码分开,但使用相同的url。\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()正好使用一个参数(给定3个)
我得到了这个错误消息:(你的url定义是什么样子的?对不起,我又犯了一个错误。现在可以了。非常感谢!