非授权用户的空白输入行

时间:2016-01-01 20:12:17

标签: django

我为我的Django应用程序构建了自定义用户级别,用户级别为:

  • 枚举
  • 区域主管
  • 验证

每个用户级别都可以将内容发送到下一个/上一个(调查员到区域主管,区域主管到枚举和验证,以及仅验证到区域主管)。

用户级别也受城市限制(区域主管只能看到“X”城市中的枚举器提交的内容,同样适用于所有用户级别)。

我的代码问题如截图所示:

  • Enumerator1创建Content1
  • Enumerator2创建Content2

Enumerator1可以看到空白行(这是Enumerator2创建的内容),同样适用于Enumerator2。

此外,当内容不在他们的许可中时,Enumerator,Area Supervisor或Verification可以看到所有内容的空白行(例如:例如:枚举者将内容提交给区域主管,枚举者将无法访问该内容直到提交回来)

Screenshot1:Enumerator1创建的内容。 enter image description here

屏幕截图2:Enumerator2如何查看Enumerator1创建的内容 enter image description here

屏幕截图3:当Enumerator2尝试访问空白行时会发生什么 enter image description here

屏幕截图4:当Enumerator2尝试删除空白行时会发生什么 enter image description here

屏幕截图5:内容如何显示给区域主管,验证(或除创建者之外的任何其他用户级别) enter image description here

请在此处找到完整的源代码:https://bitbucket.org/azoughbi/cfs/src

如何修复此问题,在用户无权访问时不显示这些空白行?

1 个答案:

答案 0 :(得分:1)

覆盖ModelAdmin中的get_queryset()方法:

class contentAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(contentAdmin, self).get_queryset()
        # Refine your query here, filtering out the unwanted records.
        return qs