字段级权限Django

dja*_*bot 9 python django django-permissions

今天我想出了一个要求,我需要实现字段级权限,以寻找最佳方式.

class ABC(models.Model):
    field1 = .....
    field2 = .....
    field3 = .....
Run Code Online (Sandbox Code Playgroud)

创建两个组(A和B)并分配权限,两者都可以添加/编辑/删除,另一个只能添加/编辑.但现在需要一些帮助: -

我想如果第一个组用户登录管理员他应该能够看到所有三个字段,但如果第二个组用户登录他们应该只看到field1.

我想在django admin中这个,因为我需要在这些之后执行一些操作.我的django版本是1.3

提前致谢

Fal*_*gel 5

在你的 admin.py

class ABCAdmin(admin.ModelAdmin):
    fields = [.....]  # here comes the fields open to all users

    def change_view(self, request, object_id, extra_context=None):  # override default admin change behaviour
        if request.user in gruop2:  # an example 
            self.fields.append('field2')  # add field 2 to your `fields` 
            self.fields.append('field3')  # add field 3 to your `fields`
Run Code Online (Sandbox Code Playgroud)

您可以使用文档查看可用的内容。以上是我的一个用法中的一个例子。您可能还需要定义change_viewand add_view