这是一个模特:
class Person(models.Model):
name= models.CharField(max_length=100, blank=True)
identity_number= models.IntegerField(unique=True)
name
字段应为公开字段,identity_number
则应保密。
我想在管理员列表视图中显示name
,并在更改表单视图中显示两个字段。
我想创建一组只能访问列表视图的用户,以及另一组可以访问两个视图的用户。
这意味着第一组用户不应看到更改表单的链接,并且如果他们尝试直接访问更改表单页面,则应返回403
(或类似内容)。如何实现呢?
答案 0 :(得分:1)
如果用list view
表示changelist_view
,则可以执行以下操作:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'identity_number', )
def changelist_view(self, request, extra_context=None):
if request.user.groups.filter(name='your_group_name').exists():
self.list_display = ('name', )
# if you dont want any links to the change_form
self.list_display_links = None
return super(MyModelAdmin, self).changelist_view(request, extra_context)