以编程方式创建Page对象时出现错误ValidationError路径和深度字段不能为空/空

时间:2019-03-29 02:29:02

标签: django wagtail

我正在尝试以编程方式创建PostPage对象。该类继承自ag的Page模型:

post = PostPage.objects.create(
    title='Dummy',
    intro='This is just for testing dummy',
    body='Lorem ipsum dolor...',
    first_published_at=datetime.strptime(f'2019-01-01', '%Y-%m-%d')
)

但是,出现以下错误:

  

ValidationError: {'path': ['This field cannot be blank.'], 'depth': ['This field cannot be null.']}

我需要创建一些虚拟Page对象,所以我想知道如何解决此问题。

1 个答案:

答案 0 :(得分:1)

我在Google网上论坛的支持question 1question 2中找到了一些有助于解决此问题的信息。基本上,我无法直接创建Page对象,但必须将其添加到另一个现有页面中,如下所示:

# assuming HomePage has at least one element
home = HomePage.objects.all()[0]

post = PostPage(
        title='Dummy',
        intro='This is just for testing dummy',
        body='Lorem ipsum dolor...',
        first_published_at=datetime.strptime(f'2019-01-01', '%Y-%m-%d'),
)
home.add_child(instance=post)
home.save()

这就像一种魅力!