如果我有一个类似的模型:
class Dealer(models.Model):
name = models.CharField(max_length=10)
other_name = models.CharField(max_length=10, blank=True, null=True)
... etc.
如果我想创建一个可以登录管理网站并且只能编辑此模型的用户,我该怎么做呢?
我环顾四周,无法成功地让它发挥作用。我也研究了监护人这样的包裹,但没有成功。我在这里缺少什么?
谢谢!
答案 0 :(得分:7)
您可以处理权限,以便只能看到此模型。可以为每个用户分配一个组,其中组具有有限的权限集,并且用户还可以具有一组可用的权限。你只需要将这个用户作为" Staff"用户(is_staff = 1
)然后向他发送关于Dealer
模型的每个权限。
如果用户不是超级用户,他将只看到Dealer
模型的链接。关于permissions and authorization are presented in the Django documentation的所有内容。
Django管理站点使用如下权限:
- 访问以查看“添加”表单并添加对象仅限于具有该类型对象的“添加”权限的用户。
- 访问以查看更改列表,查看“更改”表单并更改对象仅限于具有该类型对象的“更改”权限的用户。
- 删除对象的权限仅限于对该类对象具有“删除”权限的用户。
不仅可以为每种类型的对象设置权限,还可以为每个特定的对象实例设置权限。通过使用
has_add_permission()
类提供的has_change_permission()
,has_delete_permission()
和ModelAdmin
方法,可以为同一类型的不同对象实例自定义权限。