Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中根据用户类型导航到不同的类视图?_Python_Django - Fatal编程技术网

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

Python 如何在django中根据用户类型导航到不同的类视图?,python,django,Python,Django,假设url是这样的:www.example.com/,用户有两种类型:普通和高级。我想使用两个不同的视图来生成这两个不同的用户主页。我应该如何编写相应的url.py和views.py文件来实现这一点。顺便说一句,这两个不同的视图已经设置好了,都是基于类的视图,我只是不知道如何根据用户类型进行切换。您可以使用一个中间视图“分派”正确的视图。这样,您仍然可以有一个url。因此,只需将一个url指向此视图: class HomePageDispatchView(View): def dispa

假设url是这样的:
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定义是什么样子的?对不起,我又犯了一个错误。现在可以了。非常感谢!