代码之家  ›  专栏  ›  技术社区  ›  mpen

Django管理+水平过滤器?

  •  9
  • mpen  · 技术社区  · 14 年前

    我加了一句 filter horizontal

    filter_horizontal = ('blocked_email_notifications',)
    

    ModelAdmin

    blocked_email_notifications = ManyToManyField('EmailTemplate', blank=True)
    

    形式定义为

    blocked_email_notifications = ModelMultipleChoiceField(queryset=EmailTemplate.objects.order_by('key'), required=False)
    
    1 回复  |  直到 14 年前
        1
  •  19
  •   Risadinha    8 年前

    如果在表单中定义字段,则需要包含小部件:

    from django.contrib.admin.widgets import FilteredSelectMultiple
    
    blocked_email_notifications = ModelMultipleChoiceField(
        queryset=EmailTemplate.objects.order_by('key'), 
        required=False,
        widget=FilteredSelectMultiple(
            verbose_name=EmailTemplate._meta.verbose_name,
            is_stacked=False))
    

    is_stacked

    • False :列表并排呈现
    • True :列表呈现为一个在另一个下面