【问题标题】:Create a fake Database for testing API with wagtail使用 wagtail 创建一个用于测试 API 的假数据库
【发布时间】:2017-04-22 09:31:32
【问题描述】:

我需要针对我的 API 创建一些测试。 API 使用 wagtail 页面并为我提供它们的内容。 我正在为测试创建数据库,但我无法创建 wagtail 页面,因为我总是得到 ​​p>

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

我该怎么做?我必须创建从根到树的整个站点吗?

【问题讨论】:

  • 请提供minimal reproducible example。目前尚不清楚您的问题到底是什么。您似乎没有为 http POST 中的所有必填字段提供数据。

标签: python django wagtail


【解决方案1】:

depth - 这是一个嵌套级别。 ROOT页面有一级,主页面有二级,显然一级和二级只能有一个页面

path - 这是一个具体的值,我还没有理解。

ROOT 页面 (depth = 1) 有这个路径:0001

第二个嵌套级别 (depth = 2) 的主页具有路径 00010001

第三层嵌套的第一页 (depth = 3) 的路径为 000100010001

我不能保证我给你的建议会奏效,因为我做了很长时间, 但是如果要生成同层嵌套的假页面,只需要改变路径,最后一位加+1,深度不变。

举例:

from yourapp.models import FakePage
k = 1
for i in range(5):
    k = k + 1
    page = FakePage(
    title = ('faketitle{}').format(k),
    path = ('{0:04}').format(k)
    depth = 3,
    )
    page.save()

但是有更好的办法:

from wagtail.wagtailcore.models import Page
from yourapp.models import FakePage

pages = Page.objects.all() # Get all pages

page = Page.objects.get(pk=3) # For example, take a page with pk = 3

fakepage = FakePage(title='fakepage title') # Create the desired page

page.add_child(instance=fakepage) # Add children page to the parrent page

在这种情况下,您无需担心深度和路径。

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2012-10-26
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多