gpt4 book ai didi

wagtail - Wagtail 内嵌面板是否与非页面模型兼容?

转载 作者:行者123 更新时间:2023-12-04 17:43:11 28 4
gpt4 key购买 nike

我有一个 wagtail 非页面模型,我想使用 InlinePanel以便我可以在父表单中内联编辑多个项目。

class Parent(ClusterableModel):
panels = [...,
InlinePanel('child_items')
]

class Child(Orderable):
value = models...
parent_value = ParentalKey('.Parent', on_delete=models.CASCADE, related_name='child_items')

但不幸的是,内联面板没有在 wagtail 管理 UI 中呈现。

快速浏览一下代码,它似乎是 InlinePanel需要一个 Page 对象/编辑器,所以我想我会在这里问是否有办法使用 InlinePanel在非页面对象上,或者是否有更好的方法来实现非页面对象的 wagtail 管理中对象的内联编辑(如 django 的 StackedInline )。

最佳答案

InlinePanel如果非页面模型已注册为片段或通过 ModelAdmin,则它们确实适用于非页面模型。您的代码的工作版本是(在新创建的 Wagtail 项目上测试,home/models.py 替换为以下代码):

from django.db import models
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel

from wagtail.admin.edit_handlers import FieldPanel, InlinePanel
from wagtail.core.models import Page, Orderable
from wagtail.snippets.models import register_snippet

class HomePage(Page):
pass


@register_snippet
class Parent(ClusterableModel):
title = models.CharField(max_length=255)
panels = [
FieldPanel('title'),
InlinePanel('child_items', label='Child items'),
]

class Child(Orderable):
parent_value = ParentalKey(Parent, on_delete=models.CASCADE, related_name='child_items')
value = models.CharField(max_length=255)

panels = [
FieldPanel('value'),
]

关于wagtail - Wagtail 内嵌面板是否与非页面模型兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512343/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com