允许用户访问admin中的特定模型

时间:2014-05-27 18:31:43

标签: django permissions admin models

如果我有一个类似的模型:

class Dealer(models.Model):

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

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

我环顾四周,无法成功地让它发挥作用。我也研究了监护人这样的包裹,但没有成功。我在这里缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:7)

您可以处理权限,以便只能看到此模型。可以为每个用户分配一个组,其中组具有有限的权限集,并且用户还可以具有一组可用的权限。你只需要将这个用户作为" Staff"用户(is_staff = 1)然后向他发送关于Dealer模型的每个权限。

Admin permissions right for one user

如果用户不是超级用户,他将只看到Dealer模型的链接。关于permissions and authorization are presented in the Django documentation的所有内容。

  

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

     
      
  • 访问以查看“添加”表单并添加对象仅限于具有该类型对象的“添加”权限的用户。
  •   
  • 访问以查看更改列表,查看“更改”表单并更改对象仅限于具有该类型对象的“更改”权限的用户。
  •   
  • 删除对象的权限仅限于对该类对象具有“删除”权限的用户。
  •   
     

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