【问题标题】:Filter objects in admin在管理员中过滤对象
【发布时间】:2017-03-12 16:43:39
【问题描述】:

我有模型组和成员资格。在管理页面中,我想显示具有特定角色的组成员。怎么做?默认情况下,管理员现在向我显示组的所有成员。

models.py

class Group(models.Model):
    members = models.ManyToManyField(User, through='Membership',)

class Membership (models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE,)
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    role = models.CharField(max_length=20, choices=ROLE_CHOICES,)

admin.py

class MembershipInline(admin.TabularInline):
    model = Membership
    form = MembershipAdminForm
    extra = 1
    max_num = 1


class MembershipAdmin(admin.ModelAdmin):
    inlines = (MembershipInline,)

admin.site.register(Group, MembershipAdmin)

【问题讨论】:

    标签: python django python-3.x django-models django-admin


    【解决方案1】:

    每个the documentationTabularInline shares methods with ModelAdmin 包括get_queryset()

    class MembershipInline(admin.TabularInline):
        model = Membership
        form = MembershipAdminForm
        extra = 1
        max_num = 1
    
        def get_queryset(self, request):
            qs = super(MembershipInline, self).get_queryset(request)
            return qs.filter(role=some_query_here)
    

    【讨论】:

    • 谢谢!这就是我需要的。
    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    相关资源
    最近更新 更多