django - FieldError 与管理计算字段上的自定义过滤器
问题描述
我正在尝试对管理员中的计算字段使用自定义过滤器。我遵循了文档和其他一些示例并收到此错误:无法将关键字“kit_frequency”解析为字段。我哪里做错了?
class KitFrequencyFilter(admin.SimpleListFilter):
title = 'Frequency'
parameter_name = 'kit_frequency'
def lookups(self, request, model_admin):
return (
('Monthly', 'Monthly'),
('Bi-Monthly', 'Bi-Monthly'),
('Quarterly', 'Quarterly'),
)
def queryset(self, request, queryset):
value = self.value()
if value == 'Monthly':
return queryset.filter(kit_frequency='Monthly')
if value == 'Bi-Monthly':
return queryset.filter(kit_frequency='Bi-Monthly')
if value == 'Quarterly':
return queryset.filter(kit_frequency='Quarterly')
return queryset
@admin.register(Contact)
class ContactAdmin(ImportExportModelAdmin):
resource_class = ContactImportResource
list_display = ('full_name','program_code','kit_frequency','author','first_name1', 'last_name1', 'first_name2','last_name2','address1','city','province','postal_code','active_status')
list_filter = ['program_code','author', KitFrequencyFilter]
(简化)型号:
class Contact(models.Model):
first_name1 = models.CharField(max_length=100, verbose_name='First Name')
last_name1 = models.CharField(max_length=100, verbose_name='Last Name', blank=True)
etc...
def get_kit_frequency(self):
from programs.models import Program
kit_frequency = Program.objects.get(program_code=self.program_code).kit_frequency
return kit_frequency
kit_frequency = property(get_kit_frequency)
解决方案
推荐阅读
- python - 钩子不工作。带有 Pyomo 的 Pyinstaller
- json - 如何使用 boost 属性树生成 json 文件,如示例所示
- asp.net-mvc - 使用 Firebase Admin SDK 向移动设备发送通知
- api - Binance限价卖空API:保证金/订单(卖出)还是保证金/贷款?
- python - 如何修复此列表索引超出范围错误?
- c++ - CMake 和 GitHub Actions - GitHub Actions 上 CMake 库的 Windows 构建未将库链接到测试套件
- google-reporting-api - Google Reports API 返回的项目大小小于 maxResults 参数
- ios - 错误:0909006C:PEM 例程:get_name:没有起始行
- android-recyclerview - 如何在 android 中设置 SimpleExoPlayerView 的最大高度?
- java - 有没有办法读取 Scanner 类 java 中的分隔符?