用户只能在Django Admin中修改模型的一个字段

时间:2017-05-13 14:32:48

标签: python django django-models

我有一个名为 ExpertUser 的用户,他只能修改Django Admin中用户的被叫模型(money)的属性。

我尝试使用 Meta 在模型中添加权限,但在使用该权限输入时,我无法修改任何内容,因为我无权访问任何用户。< / p>

我的模特是这样的:

class Client(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    money = models.FloatField(default=1000)

    def __str__(self):
        return self.user.username
    class Meta:
        permissions = (("can_view_money", "Can view money"),)

1 个答案:

答案 0 :(得分:2)

看看Django Guardian。这为在各个级别分配权限提供了更大的灵活性。 Django只允许您在对象级别设置权限,因此在您的情况下,您只能设置创建/编辑/删除客户端对象的权限。

http://django-guardian.readthedocs.io/en/v1.4.8/index.html

如果这还不够,还有一些具有所需功能的其他软件包:

https://djangopackages.org/grids/g/perms/