Django中不同应用的单独访问级别

Django中不同应用的单独访问级别,django,authentication,Django,Authentication,我的Django项目中有4个应用程序。我想为他们每个人创建一个登录名。但是注册了app1的用户应该不能访问app2的页面。如果我只允许该用户从django admin访问app1模型,他将无法影响app2模型,但他仍然能够查看在app2中创建的页面吗 如果这样的用户试图登录app2,我只想显示一条“权限被拒绝”消息。我怎样才能做到这一点呢?我的看法 设置.py models.py 第一个应用程序 第二个应用程序 Views.py 如果您在应用程序中使用CBV 第一个应用程序 第二个应用程序 然后

我的Django项目中有4个应用程序。我想为他们每个人创建一个登录名。但是注册了app1的用户应该不能访问app2的页面。如果我只允许该用户从django admin访问app1模型,他将无法影响app2模型,但他仍然能够查看在app2中创建的页面吗

如果这样的用户试图登录app2,我只想显示一条“权限被拒绝”消息。我怎样才能做到这一点呢?

我的看法

设置.py models.py 第一个应用程序 第二个应用程序 Views.py 如果您在应用程序中使用CBV

第一个应用程序 第二个应用程序 然后所有视图都从中继承

USER_TYPES = [
          (1,'first'), 
         (2, 'second')]
class User_First(models.Model):
    type = models.PositiveIntegerField(choices=settings.USER_TYPES)
class User_Second(models.Model):
    type = models.PositiveIntegerField(choices=settings.USER_TYPES)
class BaseView(Views):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.type == 2:
            redirect(views of second app)
        else:
            super(BaseView, self).dispatch(request=request,*args,**kwargs)
class BaseView(Views):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.type == 1:
            redirect(views of second app)
        else:
            super(BaseView, self).dispatch(request=request,*args,**kwargs)