0

私のプロジェクトでは、次のエラーがあります。

" File "/home/xxx/www/yyy/cms/utils/placeholder.py", line 43, in validate_placeholder_name raise ImproperlyConfigured("Placeholder identifiers may not not " django.core.exceptions.ImproperlyConfigured: Placeholder identifiers may not include ASCII 以外の文字。ユーザーに表示するときにプレースホルダー識別子に非 ASCII 文字を含めたい場合は、CMS_PLACEHOLDER_CONF 設定を 'name' キーと共に使用して詳細な名前を指定してください。

私のsettings.pyにはCMS_PLACEHOLDER_CONFがないため、デフォルトの{}-空の辞書です。

エラーが発生し、デフォルト設定ができなかった理由は何ですか?

4

1 に答える 1

1

あなたのエラーはこの行にあります

content = PlaceholderField(_(u'Content'), help_text="Plugins")

文字列が識別子として使用されるために発生する複数の問題は言うまでもなく、翻訳の1つにASCII以外の文字が含まれる可能性があるという理由だけで、翻訳可能な文字列をプレースホルダー名(スロット)として渡すことはできません。これが私がすることです:

content = PlaceholderField(u'content', help_text="Plugins")

次に、プレースホルダーの構成に適切な翻訳可能な文字列を追加します。これにより、人間が読みやすい名前を付けたり、django 翻訳フレームワークを使用してさまざまな言語で使用したりできます。

CMS_PLACEHOLDER_CONF = {
    'content': {
        'name': gettext("Content"),
    },
}
于 2013-07-21T19:02:09.527 に答える