鹡鸰页面模型:外键实体+多参数
Posted
技术标签:
【中文标题】鹡鸰页面模型:外键实体+多参数【英文标题】: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 中管理两个任务:
将产品与具有多对多关系的变体(外键)链接,以在与其他页面实体相同的页面中选择产品相关变体
每个关系都有额外的参数(2 个参数),这些参数是特定于关系的(材料和直径),我还是没有找到如何在页面编辑器中显示和管理这些关系
我知道 Django 可以通过内联表单集处理它(django 管理员支持它开箱即用),但是是否有 Wagtail 方法可以完成此操作并可以通过 Wagtail 编辑器进行编辑?我更喜欢在同一个地方管理整个产品,而不是在 django-admin 中分离关系。
感谢您的任何帮助或建议。
【问题讨论】:
【参考方案1】:InlinePanel
是 Django admin 的内联表单集的 Wagtail 等价物。 Wagtail 的教程中给出了一个例子:https://docs.wagtail.io/en/stable/getting_started/tutorial.html#images
在这种情况下,它在页面和图像之间建立了多对多的关系,并在关系上附加了一个参数(标题);您的 Product -> Variant 关系可以以相同的方式设置。
【讨论】:
谢谢,这正是我想要的,只是没有关注基本示例。与 FieldRowPanel 搭配使用效果极佳,既节省空间又美观。以上是关于鹡鸰页面模型:外键实体+多参数的主要内容,如果未能解决你的问题,请参考以下文章