Django 管理员 +过滤器水平?

发布于 2024-09-17 00:39:34 字数 615 浏览 4 评论 0原文

我添加了 水平过滤器

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)

I've added filter horizontal

filter_horizontal = ('blocked_email_notifications',)

To my ModelAdmin, but it's still rendering it as a multiple select widget, rather than the nifty javascript enhanced version. How come? Do I need to add something else?

The user model has it defined as

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

And the form has it defined as

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归途 2024-09-24 00:39:34

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

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

If you define the field in the form you need to include the widget:

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: the lists are rendered side by side
  • True: the lists are rendered one underneath the other
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文