【问题标题】:Wagtail page model: foreign key entity + multiple parameters鹡鸰页面模型:外键实体+多参数
【发布时间】:2019-08-28 20:46:11
【问题描述】:

我正在使用 Wagtail CMS 创建产品目录。我为产品创建了基本页面类型:

class Product(Page):    

它有标题、描述、图片等基本字段。但我需要“一些特别的东西”:

有许多变体中的特殊部件,每个产品都可以有一些。所以我创建了另一个模型,非常简单:

@register_snippet
class Variant(models.Model):

存储所有变体。变体具有名称和图像。大约有 200 种产品和 30 种变体。

我的问题是,我不知道如何在 Wagtail 中管理两个任务:

  1. 将产品与具有多对多关系的变体(外键)链接,以在与其他页面实体相同的页面中选择产品相关变体

  2. 每个关系都有额外的参数(2 个参数),这些参数是特定于关系的(材料和直径),我还是没有找到如何在页面编辑器中显示和管理这些关系

我知道 Django 可以通过内联表单集处理它(django 管理员支持它开箱即用),但是是否有 Wagtail 方法可以完成此操作并可以通过 Wagtail 编辑器进行编辑?我更喜欢在同一个地方管理整个产品,而不是在 django-admin 中分离关系。

感谢您的任何帮助或建议。

【问题讨论】:

    标签: django model foreign-keys many-to-many wagtail


    【解决方案1】:

    InlinePanel 是 Django admin 的内联表单集的 Wagtail 等价物。 Wagtail 的教程中给出了一个例子:https://docs.wagtail.io/en/stable/getting_started/tutorial.html#images

    在这种情况下,它在页面和图像之间建立了多对多的关系,并在关系上附加了一个参数(标题);您的 Product -> Variant 关系可以以相同的方式设置。

    【讨论】:

    • 谢谢,这正是我想要的,只是没有关注基本示例。与 FieldRowPanel 搭配使用效果极佳,既节省空间又美观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多