跳转到主要内容

允许多项快速选择的InlinePanel变体

项目描述

Wagtail 多选器面板

允许多项快速选择的InlinePanel变体

License PyPI version Multiple Chooser Panel CI

关于

此软件包提供了一种改进的用户界面,用于在InlinePanel内部设置常见的选择器小部件 - 例如,由Wagtail图像库中的图像列表组成的图像库。通常,这需要为每个项目添加一个新的子表单,打开选择器模态并选择单个项目。使用此软件包提供的 MultipleChooserPanel,现在“添加项目”按钮会立即打开选择器模态,并能够选择多个项目 - 然后将所有选定的项目添加为子表单。

Example of MultipleChooserPanel in use on a blog page on the bakery demo site: the user clicks "Add author(s)", opening up a person chooser with checkboxes against each name. The user ticks the boxes for Muddy Waters and Olivia Ava, then clicks "Confirm selection" - this results in Muddy Waters and Olivia Ava being added as authors for the blog page.

在此版本中,仅支持通过 wagtail-generic-chooser 实现的选择器;计划将此功能纳入未来的Wagtail版本,并支持所有Wagtail内置选择器和通过 ChooserViewSet 创建的自定义选择器。

链接

支持的版本

  • Python 3.7 - 3.11
  • Django 3.2 - 4.1
  • Wagtail 4.1

安装

  • 确保已安装 wagtail-generic-chooser 版本 0.5 或更高版本
  • pip install wagtail-multiple-chooser-panel
  • "wagtail_multiple_chooser_panel" 添加到 INSTALLED_APPS

使用

从一个 InlinePanel 设置开始,其中子模型具有通过 wagtail-generic-chooser 定义的具有选择器小部件的字段,例如

class BlogPersonRelationship(Orderable, models.Model):
    page = ParentalKey(
        "BlogPage", related_name="blog_person_relationship", on_delete=models.CASCADE
    )
    person = models.ForeignKey(
        "base.Person", related_name="person_blog_relationship", on_delete=models.CASCADE
    )
    panels = [FieldPanel("person", widget=PersonChooser)]


class BlogPage(Page):
    content_panels = Page.content_panels + [
        # ...
        InlinePanel(
            "blog_person_relationship",
            label="Author(s)", min_num=1
        ),
    ]

wagtail_multiple_chooser_panel.panels 中导入 MultipleChooserPanel,将 InlinePanel 替换为 MultipleChooserPanel,并添加一个新参数 chooser_field_name,该参数指定了具有选择小部件的子模型的字段。

from wagtail_multiple_chooser_panel.panels import MultipleChooserPanel

# BlogPersonRelationship definition remains unchanged

class BlogPage(Page):
    content_panels = Page.content_panels + [
        # ...
        MultipleChooserPanel(
            "blog_person_relationship",
            chooser_field_name="person",
            label="Author(s)", min_num=1
        ),
    ]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

wagtail-multiple-chooser-panel-0.1.0.tar.gz (16.7 kB 查看哈希值)

上传时间

构建分布

wagtail_multiple_chooser_panel-0.1.0-py3-none-any.whl (18.5 kB 查看哈希值)

上传时间 Python 3