django过滤器无法正常使用自定义添加字段

时间:2018-04-13 01:11:13

标签: python django python-3.x django-admin

我在Django项目中使用 list_filter 创建了一个带有 list_display 的django管理视图和自定义创建的过滤器。 (使用 Django 1.11

问题:过滤器对“全部”选择​​显示正常,但对值不显示(“是”,“否”)。 单击过滤器值时会出现以下错误。

  

django.core.exceptions.FieldError:无法将关键字“IsWithinRange”解析为字段。选项包括:date_created,id,predict_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'

※没有过滤器它工作正常。 关于这类问题有很多问题,但是没有一个问题对我有用

0 个答案:

没有答案