Django admin限制访问列表vi

2024-03-29 09:04:01 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个模型:

class Person(models.Model):
    name= models.CharField(max_length=100, blank=True)
    identity_number= models.IntegerField(unique=True)

name字段应该是公共的,identity_number应该是机密的。在

我想在管理列表视图中显示name,并在更改表单视图中显示这两个字段。在

我想创建一组用户,他们只能访问列表视图,另一组用户可以访问这两个视图。在

这意味着第一组用户不应该看到指向changeform的链接,如果他们试图直接访问changeform页面,403(或类似的内容)应该被返回。如何做到这一点?在


Tags: 用户name模型视图truenumber列表model
1条回答
网友
1楼 · 发布于 2024-03-29 09:04:01

如果您所说的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)

相关问题 更多 >