允许用户在管理员中访问特定模型

Posted

技术标签:

【中文标题】允许用户在管理员中访问特定模型【英文标题】:Allowing a user to access specific models in admin 【发布时间】:2014-07-16 18:54:03 【问题描述】:

如果我有类似这样的模型:

class Dealer(models.Model):

    name        = models.CharField(max_length=10)
    other_name  = models.CharField(max_length=10,  blank=True, null=True)
... etc.

如果我想创建一个可以登录管理站点并且只能编辑此模型的用户,我该怎么做?

我环顾四周,但未能成功使其工作。我也研究过诸如监护人之类的软件包,但没有成功。我在这里错过了什么?

谢谢!

【问题讨论】:

【参考方案1】:

你可以处理权限,让他只能看到这个模型。可以为每个用户分配一个组,其中一个组具有一组有限的权限,而一个用户也可以拥有一组可用的权限。您只需将此用户设置为“员工”用户 (is_staff = 1),然后为他设置有关 Dealer 模型的所有权限。

如果用户不是超级用户,他将只能看到指向 Dealer 模型的链接。关于permissions and authorization are presented in the Django documentation的一切。

Django 管理站点使用权限如下:

查看“添加”表单和添加对象的权限仅限于对该类型对象具有“添加”权限的用户。 查看更改列表、查看“更改”表单和更改对象的权限仅限于对该类型对象具有“更改”权限的用户。 删除对象的权限仅限于对该类型对象具有“删除”权限的用户。

不仅可以为每个对象类型设置权限,还可以为每个特定对象实例设置权限。通过使用ModelAdmin类提供的has_add_permission()has_change_permission()has_delete_permission()方法,可以为同类型的不同对象实例自定义权限。

【讨论】:

以上是关于允许用户在管理员中访问特定模型的主要内容,如果未能解决你的问题,请参考以下文章

帮助在特定模型实例中为用户分配角色的数据库策略

Django Admin - 特定用户(管理员)内容

Django-admin实现管理员或特定组或人员可访问数据

在 Django 中,只允许管理员用户访问视图

S3 拒绝管理员访问

如何获得对特定 Facebook 页面或应用程序的管理页面权限?