python - Django:list_display 接受字段但不接受 list_filter
问题描述
我有以下管理类:
class AppointmentAdmin(admin.ModelAdmin):
list_display = ('branch', 'date', 'timeslot', 'sold_to', 'unit', 'VIN')
list_filter = ('branch', 'date', 'sold_to', 'unit', 'VIN')
def VIN(self, obj):
return obj.unit.vin
我收到以下错误:
<class 'catalog.admin.AppointmentAdmin'>: (admin.E116) The value of 'list_filter[4]' refers to 'VIN', which does not refer to a Field.
如果我从 list_filter 中删除 VIN,它执行得很好。list_display将显示字段 VIN。
我究竟做错了什么?
解决方案
列表过滤器不支持 ModelAdmin 方法。
要根据您的 VIN 方法过滤 vin,您需要在 list_filter 中包含 unit__vin。
https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter
推荐阅读
- webpack - 如何修复 Chunk.modulesIterable 的弃用警告?
- java - java:如何确认数组已在数组操作菜单中创建
- arrays - Presto - 在列表中使用 serde?
- json - 从 JSON 解析创建简单结构
- mysql - MySQL查找包含相同字符串但不完全的行
- php - 调用未定义的方法 CodeIgniter\Database\MySQLi\Connection::like()
- javascript - 使用 useCallback 时如何记忆高阶函数?
- parsing - Latex 有数据类型检查功能吗?
- c++ - Libclang 不检测头文件中定义的函数调用
- c# - Linq Where 子句 'AND' 'OR'