【问题标题】:How can in filter by more than one value of same field at django admin using list_filter?如何使用list_filter在django admin中过滤多个相同字段的值?
【发布时间】:2019-07-20 12:33:41
【问题描述】:

我有字段“汽车”,其中包含值“奔驰、尼桑、起亚” 使用 ==> list_filter ["car"] 我如何通过 "Nissan" 和 "Kia" 等值进行过滤。两个都不是

Car objects

【问题讨论】:

标签: python django django-admin


【解决方案1】:

您可以使用 django-admin-multiple-choice-list-filter 包中的 MultipleChoiceListFilter,因为 Django 中没有内置多选过滤器。示例:

models.py

class CarModel(models.Model):
    name = models.CharField(max_length=255)

class Car(models.Model):
    car_model = models.ForeignKey(CarModel, on_delete=models.CASCADE)

admin.py

from django.contrib import admin
from django_admin_multiple_choice_list_filter.list_filters import MultipleChoiceListFilter
from .models import Car

class CarModelListFilter(MultipleChoiceListFilter):
    title = 'Car Model'
    parameter_name = 'car_model__in'

    def lookups(self, request, model_admin):
        return CarModel.objects.values_list('pk', 'name')

class CarAdmin(admin.ModelAdmin):
    list_display = ('car_model',)
    list_filter = (CarModelListFilter,)

admin.site.register(Car, CarAdmin)

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多