我已经在django项目中创建了一个django管理视图,其中包含list_display和使用list\u filter自定义创建的过滤器。(使用Django 1.11
问题:筛选器对“All”选择显示良好,但对值(“Yes”、“No”)则不显示。 单击过滤器值时会出现以下错误。在
django.core.exceptions.FieldError: Cannot resolve keyword 'IsWithinRange' into field. Choices are: date_created, id, predicted_result, user_question
代码如下:
class IsWithinRangeFilter(admin.SimpleListFilter):
title = 'Is Within Range'
parameter_name = 'IsWithinRange'
def lookups(self, request, model_admin):
return (
('Yes', 'Yes'),
('No', 'No'),
)
def queryset(self, request, queryset):
value = self.value()
logger.info('value :{}\n' .format(value))
if value == 'Yes':
return queryset.filter(IsWithinRange='Yes')
elif value == 'No':
return queryset.filter(IsWithinRange='No')
return queryset
class CoreLogAdmin(admin.ModelAdmin):
readonly_fields = ['date_created']
list_display = ('user_question', '_predicted_result', 'date_created', 'IsWithinRange')
list_filter = (IsWithinRangeFilter,) #without this system works fine
def IsWithinRange(self, row):
"""showing user questions only within score range (0.5~0.8)"""
...
score = <some value extract from row and then cast it to float value>
fscore = float(score)
if fscore >= 0.5 and fscore < 0.8:
return 'Yes'
else:
return 'No'
※没有过滤器,它工作正常。 关于这类问题有很多问题,但没有一个对我有效
目前没有回答
相关问题 更多 >
编程相关推荐