Django Admin:向不同的用户显示不同的模型

时间:2018-07-06 06:26:59

标签: python django django-admin django-permissions

我有两个超级用户(const films = [{name: 'Ant-Man and the Wasp',genre: ['Action' , 'Adventure' , 'Sci-Fi' , 'Comedy']},{name: 'Sorry to Bother You',genre: ['Comedy' , 'Fantasy']},{name: 'Jurassic World: Fallen Kingdom',dependencies: ['Action' , 'Adventure' , 'Sci-Fi'],},{name: 'Incredibles 2',dependencies: ['Action' , 'Crime' , 'Drama' , 'Thriller']},{name: 'Deadpool 2',dependencies: ['Action' , 'Adventure' , 'Comedy']}]; let actionflicks = films.filter(f => (f.genre || f.dependencies).includes( 'Action')) console.log(actionflicks)user1)和两个模型(user2ModelA)。在管理页面中,我只想显示ModelBModelA,所以user1只能编辑user1实例,不能编辑ModelA实例。同样,我想让ModelB仅能编辑user2实例。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

这就是has_change_permission的作用。您可以向特定用户授予编辑权限。

class TestAdmin(admin.ModelAdmin):

    def has_change_permission(self, request):
        if request.user.username == 'xyz':
            # Feel free to return false to hide this TestAdmin to xyz user
            return False
        return True

答案 1 :(得分:0)

如果需要分别限制

Private Sub rec_Click() If deptotal.Value > "250,000" Or equitytotal.Value > "80" Then UserForm4.Show Else If deptotal.Value < "250,000" Or equitytotal.Value < "80" Then MsgBox "No Recommendations to Show as of Now" End If End If End Sub user1的访问权限,则它们不能成为超级用户。因此,请先进行重构。

是的,您可以在Django管理界面中为特定用户提供特定模型的访问权限。请查看Django文档:Permissions and Authorizations

https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

上也有关于设置权限和组的很好的教程。

让我知道您阅读这些资源后是否感到困惑。

谢谢!

答案 2 :(得分:0)

在has_module_permission中,您可以执行以下操作:

def has_module_permission(self, request):
    if request.user.is_superuser:  # show for super user anyway
        return True
    if request.user ... complete the condition:
        return True

您应该有一些区别用户的方法,例如为不同用户(管理员,职员,编辑者)提供更多属性等等。

if request.user.role = "staff":
    return True

类似的东西。