Django - 限制用户访问管理站点

时间:2014-03-20 17:56:18

标签: python django django-admin

我正在尝试创建一个应用程序来跟踪基于django管理员(即localhost / admin)的团队名单。

我想设置它以便我可以将某些团队分配给某些用户,这样当他们登录管理站点时,他们只能查看和编辑他们被分配到的团队。

我希望具有superadmin状态的用户能够通过管理站点添加和删除对各个团队的用户访问权限,而无需在每次添加新用户或团队时修改底层代码。有没有办法做到这一点?

class Team(models.Model):
    team_name = ...
    # Whatever other attributes.

class Player(models.Model):
    first_name = ...
    last_name = ...
    team = models.ForeignKey(Team)
    # Whatever stats you want to keep on the players

1 个答案:

答案 0 :(得分:0)

您可以动态更改admin使用的查询集;您可以这样做只显示与登录用户关联的团队。

class TeamModelAdmin(admin.ModelAdmin):
    def get_queryset(request):
         return Team.objects.filter(...)