0

テストで CMS のスケルトンを構築する機能があります。

def create_base_cms_structure():
    from cms.api import create_page
    from cms.utils.conf import get_cms_setting
    superuser = User.objects.create_superuser('cmsadmin', 'admin@admin.com', 'cmsadmin')
    create_page('account-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="AccountApp")
    create_page('job-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="JobApp")
    create_page('article-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="ArticleApp")

大丈夫ですか?Client() を使用してテストを実行しようとすると、リバースの 1 つが存在しないというエラーが表示されます (アカウント アプリからのもの)。その URL はメイン テンプレートでレンダリングされています。

私は何かが恋しいですか?

ジャンゴ 1.4.5

ジャンゴ CMS 2.4b

4

1 に答える 1

0

Django-cms のドキュメントから:

アプリをテストする必要がありますが、CMS ページに添付されているため、実際のサイトでは urls.py に含まれていません。したがって、テストで reverse() を使用できるようにする場合、または url テンプレート タグを使用するテスト テンプレートを使用できるようにする場合は、アプリを urls.py の特別なテスト バージョンに接続し、それを使用するようにテストに指示する必要があります。

その後

@override_settings(ROOT_URLCONF='myapp.tests.urls')

あなたの方法の前に。

http://django-cms.readthedocs.org/en/latest/extending_cms/testing.html

これを試しましたか?

于 2014-11-07T19:30:59.117 に答える