我的Django项目中有4个应用程序。我想为每个人创建一个登录。但是注册app1的用户不应该能够访问app2的页面。如果我只让django admin给这个用户访问app1模型,他就无法影响app2模型,但是他仍然可以查看在app2中创建的页面吗?
如果此类用户尝试登录app2,我只想显示权限被拒绝的消息。我怎样才能做到这一点?
答案 0 :(得分:1)
我的意见
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)
如果您在应用中使用CBV
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)
然后所有视图都从它继承