【问题标题】:Django Admin + Filter Horizontal?Django Admin + Filter Horizo​​ntal?
【发布时间】:2010-09-01 06:20:43
【问题描述】:

我添加了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)

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    如果您在表单中定义了需要包含小部件的字段:

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

    【讨论】:

    • 只是想添加到答案中,您需要传递 FilteredSelectMultiple(verbose_name,stacked) 的实例而不是类,因此最新版本的 Django 不会抱怨。
    • 希望这也有帮助blog.jayapal.in/2009/08/…
    猜你喜欢
    • 2019-03-30
    • 2019-08-15
    • 2015-09-08
    • 1970-01-01
    • 2015-08-29
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    相关资源
    最近更新 更多