繁体   English   中英

Django Admin中的自定义内联list_filter

[英]Custom inline list_filter in django admin

我想知道是否可以对change_list模板中的内联字段进行过滤。

我有这个模型:

class VisitaVirtual(models.Model):
    poi = models.ForeignKey(Poi)
    cliente = models.ForeignKey(Cliente, verbose_name=_(u'Cliente'))
    titulo = models.CharField(_(u'Título'), max_length=200)
    observacoes = models.TextField(_(u'Observações'), null=True, blank=True)
    exclusivo = models.BooleanField(_(u'Exclusivo'), default=False)
    remover = models.BooleanField(_(u'Remover'), default=False, null=True, blank=True)
    created = models.DateTimeField(_(u'Criado em'), auto_now_add=True, editable=False)
    updated = models.DateTimeField(_(u'Modificado em'), auto_now=True, editable=False)

class FicheiroVisitaVirtual(models.Model):
    visita_virtual = models.ForeignKey(VisitaVirtual, verbose_name=_(u'Visita virtual'))
    ficheiro = models.FileField(_(u'Ficheiro'), upload_to='multimedia/visitas_virtuais/ficheiros/')
    tipo = models.CharField(_(u'Tipo'), max_length=10, null=True, blank=True, choices=TIPO_VV)
    linguagem = models.CharField(_(u'Linguagem'), choices=LANGUAGES, max_length=2)
    created = models.DateTimeField(_(u'Criado em'), auto_now_add=True, editable=False)
    updated = models.DateTimeField(_(u'Modificado em'), auto_now=True, editable=False)

和我的admin.py看起来像这样:

class FicheiroVisitaVirtualModelInlines(admin.TabularInline):
    model = FicheiroVisitaVirtual
    extra = 3
    list_filter = ['tipo']


class VisitaVirtualAdmin(admin.ModelAdmin):
    list_display = ['titulo', 'cliente', 'remover', 'exclusivo', 'created', 'updated']
    list_filter = ['created']
    search_fields = ['titulo']
    ordering = ['titulo']
    raw_id_fields = ['poi', 'cliente']
    inlines = [FicheiroVisitaVirtualModelInlines]

我需要在tipo字段中有一个过滤器,以便可以过滤有一段时间的FicheiroVisitaVirtual的VisitaVirtual。

可能吗?

您可以使用<related_manager>__<related field> list_filter <related_manager>__<related field>语法在list_filter使用相关模型的<related_manager>__<related field>

class VisitaVirtualAdmin(admin.ModelAdmin):
     list_display = ['ficheirovisitavirtual_set__tipo', ]
     (...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM