Django覆盖每个组的自定义数据管理应用程序

时间:2017-05-24 07:21:43

标签: python django django-admin

我有一个用于在我的django web-app中管理配置的应用程序(某些用户可以更改配置)。 现在,我试图仅显示用户可以更改的配置(基于组),而不是我应用中可用的所有配置。

我想更改django admin的以下部分,并仅显示用户可以更改的配置。

enter image description here

用户"管理员"我想显示应用程序中可用的所有配置,但是对于用户" User1" (group =" group1")我想显示一些设置。

是否有任何方法可以覆盖django app的这一部分?

1 个答案:

答案 0 :(得分:1)

您的问题模型groups = models.ManyToManyField(Group)中需要一个群组字段,然后您可以在ModelAdmin中覆盖get_serch_results

示例:

class QuestionAdmin(admin.ModelAdmin):
    list_display = ('question','otherfield')

    def get_search_results(self, request, queryset, search_term):
        queryset, use_distinct = super().get_search_results(request, queryset, search_term)
        filtered_by_group = queryset.filter(groups__in=request.user.groups.all())
        return filtered_by_group, use_distinct


admin.site.register(Question, QuestionAdmin)