2017-04-22 7 views
-2

私のAPIに対していくつかのテストを作成する必要があります。 APIはwagtailページを使用して、それらのコンテンツを提供します。 私はテスト用のデータベースを作成した時点でんだけど、私はいつも、私はそれを行うことができますどのようにwagtailでAPIをテストするための偽のデータベースを作成する

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

を取得するので、私は、セキレイページを作成することはできませんよ?ルートからツリーまでサイト全体を作成する必要がありますか?

+0

[mcve]を提供してください。あなたの問題が何であるかは明確ではありません。 http POSTのすべての必須フィールドにデータを提供していないようです。 –

答えて

0

depth - これはネストレベルです。 ROOTページはレベル1、メインページはレベル2、明らかに1ページのみが第1レベルと第2レベルにあります。

path - これはまだわかっていません。

ルート・ページ(= 1 depth)は、このパスを有する:0001

第二ネスティングレベル(= 2 depth)上のメインページパス00010001を有しています。

第三のネストレベル(= 3 depth)上の最初のページには、パスを持っている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 

は、このケースでは、深さとパスを心配する必要はありません。

関連する問題