无法解析关键字' XXX'进入田野

时间:2017-02-08 16:33:41

标签: django django-admin

我有以下课程

class Advert(models.Model):
    ...
    title = models.TextField (
        verbose_name = 'Job Title',
    )
    advertiser = models.TextField (
        verbose_name = 'Advertiser',
    )
    first_advert = models.DateField (
        verbose_name = 'First Advertised',
        default = datetime.date.today
    )
    last_advert = models.DateField (
        verbose_name = 'Last Advertised',
        default = datetime.date.today
    )

    def posted_once(self):
        return (self.last_advert == self.first_advert)
    posted_once.short_description = 'Posted Once'

在admin.py中,我尝试使用posting_once作为过滤器

class AdvertAdmin(admin.ModelAdmin):
    list_display = ['first_advert','last_advert',]
    ordering = ['-last_advert','first_advert']
    actions = [extract,]
    list_filter = ('posted_once',)

但是我得到了

  

无法解析关键字" posting_once'进入现场

错误。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您不能将函数用作列表过滤器。

  

list_filter 应该是元素的列表或元组,其中每个元素应该是以下类型之一:

     
      
  • 字段名称,其中指定的字段应为 BooleanField CharField {{1 DateField DateTimeField IntegerField { {1}}

  •   
  • 继承自 ForeignKey 的类,您需要提供 ManyToManyField django.contrib.admin.SimpleListFilter 属性并覆盖 title parameter_name 方法

  •   
  • 一个元组,其中第一个元素是字段名称,第二个元素是继承自 lookups

  • 的类   

因此,对于您的情况,您需要继承SimpleListFilter或FieldListFilter like the examples in the docs