在Django管理站点中隐藏不同用户的某些字段

时间:2012-04-27 19:10:39

标签: django django-models django-admin django-admin-filters

我有一个管理网站,我需要向更多管理员开放。

目前我的模型看起来像

class YouTube(models.Model):
    name =  models.CharField(max_length=100)
    credit_card_number = models.CharField(max_length=100)

管理网站框架中是否有办法使其成为只有超级用户才能看到信用卡号?在管理站点框架中,我只能看到添加,编辑,删除的功能。

1 个答案:

答案 0 :(得分:2)

创建方法 YouTube.get_cc_root_only ,您可以在其中检查用户是否为root用户,并在YouTubeAdmin课程中使用它( list_display

<强>更新:

class XyzAdmin(admin.ModelAdmin):
    def get_cc_root_only(self, obj):
        if self.username == "admin":
            return "CC"
        return "XXX"

    def changelist_view(self, request, extra_context = None):
        self.username = request.user.username
        return super(XyzAdmin,self).changelist_view(request, extra_context = extra_context)

    list_display = ("name", "get_cc_root_only")