Lor*_*ABA 5 python django permissions django-guardian
我有两个模型:
class ContactGroup(models.Model):
name = models.CharField(max_length=40)
class Meta:
permissions=(('view_group_contacts', 'View contacts from group'))
class Contact(models.Model):
name = models.CharField(max_length=40)
group = models.ForeignKey(ContactGroup)
class Meta:
permissions=(('view_contact', 'View contact'))
Run Code Online (Sandbox Code Playgroud)
例如,当我在执行`get_objects_for_user(User, 'appname.view_contact) 但仍然保留更改单个联系人权限的选项时,如何让 django 监护人考虑 ContactGroup 权限?(不排除,仅授予查看单个联系人的权限当用户没有整个组的权限时)
抱歉,django-guardian 不支持这种行为。至于has_perm- 将其用于查询集效率极低,因为我们需要对表中的每一行执行 >=1 查询。
但是,您可以首先执行get_objects_for_userfor ContactGroup,然后执行 forContact并使用第一个查询集的结果扩展最后一个查询集。就像是:
contact_groups = get_objects_for_user(user, 'appname.view_group_contacts', ContactGroup)
contacts = get_objects_for_user(user, 'appname.view_contact', Contact)
Run Code Online (Sandbox Code Playgroud)
合并这些仍然存在问题,但这是可能的。
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |