如何以编程方式保存带有可排序对象的Wagtail页面

2024-10-17 00:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型:

class HomePage(Page):
    content_panels = Page.content_panels + [
        InlinePanel('homepage_content', label="Homepage Content")
    ]
    template = 'home.html'

我有一个Orderable对象:

class HomePageContent(Orderable):
    page = ParentalKey(HomePage, on_delete=models.SET_NULL, related_name='homepage_content', null=True)
    principal_welcome_message = models.TextField()
    the_way_we_teach = RichTextField()
    meet_our_teachers = RichTextField()
    meet_our_students = RichTextField()

    # Editor panels configuration

    panels = [
        FieldPanel('principal_welcome_message'),
        FieldPanel('the_way_we_teach'),
        FieldPanel('meet_our_teachers'),
        FieldPanel('meet_our_students'),
    ]

这就是我[以编程方式]保存HomePage对象的方式:

root = Page.objects.get(title="Root").specific

school_home_page = HomePage(title="Home Page")
root.add_child(instance=school_home_page).save_revision().publish()

site = Site.objects.first():

site.root_page = school_home_page
site.save()

这就是我[以编程方式]保存HomePageContent对象的方式:

home_page_content = HomePageContent(
    page=school_home_page,
    principal_welcome_message="Default statement",
    the_way_we_teach="Default Tech",
    meet_our_teachers="Default developers",
    meet_our_students="Default analysts"
)

使用上述设置,我无法将HomePageContent对象与HomePage对象一起保存。我还尝试将HomePageContent作为子对象添加到HomePage对象,但仍然没有任何进展

如果您知道通过ParentalKey和相应的Page对象一起保存与Page对象关联的Orderable对象的任何[标准]方法[以编程方式,而不是通过管理界面],则非常需要您的帮助。多谢各位


Tags: 对象defaulthome方式pageourcontenthomepage