我正在建立一个公共访问应用程序,客户限制区域和管理员另一个限制区域。
我有一个Manager
模型和Client
模型与用户的外键。经理自动添加到组managers
和客户端到clients
。
我有一个客户端外联网,现在受@login_required限制。管理人员的外联网也是如此。
我需要禁用管理员外联网的访问客户端。
是否更好地在管理器组中创建权限并将其添加到Extranet部分中的每个视图或以某种方式不同?
一种方法是使用user_passes_test
装饰:
在要限制为管理员的视图之前添加此行。
@user_passes_test(lambda u: u.groups.filter(name='managers').count() > 0, login_url='/myapp/denied/')
Als我使用名为group_required的user_passes_test找到了一个现有的装饰器