首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-Guardian权限-为一对多关系中的对象设置权限

Django-Guardian权限-为一对多关系中的对象设置权限
EN

Stack Overflow用户
提问于 2017-02-21 01:55:18
回答 1查看 1.2K关注 0票数 0

我有以下模型:

项目:

代码语言:javascript
复制
class Project(models.Model):
    project_name = models.CharField(max_length=100, unique=True)

SearchCodes:

代码语言:javascript
复制
class SearchCode(models.Model):
   project = models.ForeignKey(Project, on_delete=models.CASCADE)
   search_code = models.CharField(max_length=3)
   search_code_modifier = models.CharField(max_length=1)

   class Meta:
     unique_together = ('project', 'search_code', 'search_code_modifier',)

Django-Guardian docs中,我可以在Django admin中设置权限。然后,对于项目,我可以在视图中检查/限制用户,如下所示:

代码语言:javascript
复制
def project_edit(request, pk_project):

   project = get_object_or_404(Project, pk=pk_project)
   project_name = project.project_name

   user = request.user

   # Check user permission at the object level by passing in this specific project
   if user.has_perm('myApp.change_project', project):
      ...do something

这就是我被卡住的地方。如何在Django-Admin中设置与项目相关的任何SearchCodes的权限?我不想在SearchCodes上设置对象级权限-那只是SearchCode的每个实例。相反,我需要能够在Admin中设置:

您可以查看与此项目相关的每个SearchCode,但不能查看任何其他SearchCodes。

如果我需要更具体的内容,请告诉我--我已经尽量保持通用性。

谢谢--任何帮助或指点都将非常感谢。

编辑:

我使用Admin-Integration示例在Django-Guardian中设置了项目对象级别的权限。

感觉在这一点上,当我在这个项目的对象权限页面中时,必须有某种方法来设置与这个项目的特定实例相关的所有SearchCodes的权限。

EN

回答 1

Stack Overflow用户

发布于 2017-02-21 08:35:23

Django-guardian是对象级权限应用程序,所以在携带权限的对象上分配权限,并检查该对象的权限。在您的特定示例中,您必须编写类似这样的代码,以通过project (权限载体对象)检查代码的权限:

代码语言:javascript
复制
def code_edit(request, pk):

   code = get_object_or_404(SearchCode.objects.select_related('project'), pk=pk)
   project = code.project
   project_name = project.project_name

   user = request.user

   # Check user permission at the object level by passing in this specific project
   if user.has_perm('myApp.change_project', project):
      ...do something
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42351312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档