python - 如何使用list_filter在django admin中过滤多个相同字段的值?
解决方案
您可以使用MultipleChoiceListFilter
django -admin-multiple-choice-list-filter包,因为 Django 中没有内置多选过滤器。例子:
模型.py
class CarModel(models.Model):
name = models.CharField(max_length=255)
class Car(models.Model):
car_model = models.ForeignKey(CarModel, on_delete=models.CASCADE)
管理员.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)
推荐阅读
- c# - 如何获得 Hangfire 工作的结束时间?
- javascript - 确定数组对象中的最小和最大日期
- .net - 正则表达式 - 匹配括号之间的引号
- javascript - 如何过滤 json 并获得在 js 中创建线图的平均值?
- excel - 尝试插入一个新行(不使用表函数),然后从上面复制公式和格式,同时清除内容
- reactjs - 在 React 的 const 组件中引用 React 类组件
- python - 如何创建一个比较两个目录的文件夹和子文件夹的 os.walk() 函数?
- php - 根据总金额自动完成 WooCommerce 订单
- java - Java 应用程序在通过 spooler 打印作业时忽略配置设置
- css - 如何在 bootstrap .col 中更改 br 行高