Django Admin + Filter Horizo​​ntal?

时间:2010-09-01 06:20:44

标签: django django-admin

我添加了filter horizontal

filter_horizontal = ('blocked_email_notifications',)

到我的ModelAdmin,但它仍然将它渲染为多选小部件,而不是漂亮的javascript增强版。怎么会?我需要添加其他内容吗?

用户模型将其定义为

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

表单将其定义为

blocked_email_notifications = ModelMultipleChoiceField(queryset=EmailTemplate.objects.order_by('key'), required=False)

1 个答案:

答案 0 :(得分:19)

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

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:列表在另一个
  • 下面呈现