Django客户端和外联网用户的区别

时间:2013-04-22 23:26:53

标签: django authentication privileges

我正在构建一个具有公共访问权限的应用程序,为客户构建限制区域,为管理者构建另一个限制区域。

我有一个Manager模型和Client模型,其中包含用户的外键。管理员会自动添加到组managers,客户端会自动添加到clients

我有一个客户端外联网,现在受@login_required限制。管理人员的外联网也是如此。

我需要禁用管理员外联网的访问客户端。

是否更好地在经理人组中创建权限并将其添加到外部网部分中的每个视图或以某种方式不同?

2 个答案:

答案 0 :(得分:0)

一种方法是使用user_passes_test装饰器:

在要限制为管理员的视图之前添加此行。

@user_passes_test(lambda u: u.groups.filter(name='managers').count() > 0, login_url='/myapp/denied/')

答案 1 :(得分:0)

Als我使用名为 group_required user_passes_test 找到了现有的装饰器

可在此处找到http://djangosnippets.org/snippets/1703/