DjangoAdmin自定義過濾器

class UserIDFilter(admin.SimpleListFilter):
    # 自定義用戶查詢過濾器
    title = _('關聯用戶')

    parameter_name = 'user_id'

    def lookups(self, request, model_admin):
        params = UserProfile.objects.all().values_list('nickname', 'user_id')
        look_choice = []
        for nickname, user_id in list(params):
            temp = ('{}'.format(user_id), _('{}'.format(nickname)))
            look_choice.append(temp)
        return look_choice

    def queryset(self, request, queryset):
        user = self.value()
        if not user:
            return queryset
        return queryset.filter(user=user)
相關文章
相關標籤/搜索