在Django 1.3或更低版本的Django Admin中自定义过滤器

如何向django admin(显示在模型仪表板右侧的过滤器)添加自定义过滤器?我知道很容易包含一个基于该模型字段的过滤器,但是这样的“计算”字段呢:


class NewsItem(models.Model):

    headline = models.CharField(max_length=4096, blank=False)

    byline_1 = models.CharField(max_length=4096, blank=True)

    dateline = models.DateTimeField(help_text=_("date/time that appears on article"))

    body_copy = models.TextField(blank=False)


    when_to_publish = models.DateTimeField(verbose_name="When to publish",  blank=True, null=True)


    # HOW CAN I HAVE "is_live" as part of the admin filter?  It's a calculated state!!

    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

class NewsItemAdmin(admin.ModelAdmin):

    form = NewsItemAdminForm

    list_display = ('headline', 'id', 'is_live')

    list_filter = ('is_live')  #  how can i make this work??


梵蒂冈之花
浏览 711回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP