这个Django 1.2的语法还有效吗?
在Django 1.3或以下版本中使用Django管理工具中的自定义筛选器
我已经尝试过,但是管理类中的list_filter选项没有识别出我的自定义筛选器。应该如何将自定义筛选器添加到list_filter中以便显示?
class MyModelAdmin(admin.ModelAdmin):
...
list_filter = ['is_expired_filter']
这里,我的“is_expired_filter”是我新注册的自定义过滤器,作者说他是这样做的:
list_filter = ('is_live')
但是这个在Django中不被识别,当我加载admin页面时得到的错误是:
异常类型: ImproperlyConfigured 异常值: 'PositionAdmin.list_filter[2]' 引用了模型'Position'中缺失的字段 'is_expired_filter'
也许我的错误在于我不确定原始代码在问题作者实现自定义筛选器时如何使用。
以下是原始代码:
def is_live(self):
if self.when_to_publish is not None:
if ( self.when_to_publish < datetime.now() ):
return """ <img alt="True" src="/media/img/admin/icon-yes.gif"/> """
else:
return """ <img alt="False" src="/media/img/admin/icon-no.gif"/> """
is_live.allow_tags = True