django admin (모델 대시 보드의 오른쪽에 나타나는 필터)에 사용자 정의 필터를 추가하려면 어떻게합니까? 나는 쉬운이 같은 "계산"필드에 대해 해당 모델의 필드를 기준으로 필터,하지만를 포함 알고Django의 사용자 정의 필터 Django 1.3 이하
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??
다른 사람들을 돕는이 기능은 트렁크 (1.4 DEV)에 말했다 수있는 대답은 가능한 한 간단하게 사용자 정의 필터를 구현했습니다. 추가 정보 : [릴리스 노트] (https://code.djangoproject.com/browser/django/trunk/docs/releases/1.4.txt?rev=16144#L40) 및 [documentation] (https : // code. djangoproject.com/browser/django/trunk/docs/ref/contrib/admin/index.txt#L604). – Paolo
다음은 문서에 대한 더 나은 링크입니다. SimpleListFilter를 확장하면 여기에 갈 수 있습니다. FilterSpecs가 오래되었습니다. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter – fastmultiplication
[matley 응답] (https://stackoverflow.com/a/6355234/)을 참조하십시오. 아래 공식 문서에 대한 링크가 있습니다. –