0

在我的项目中我有这个错误:

" File "/home/xxx/www/yyy/cms/utils/placeholder.py", line 43, in validate_placeholder_name raise ImproperlyConfigured("Placeholder identifiers names may not " django.core.exceptions.ImproperlyConfigured: Placeholder identifiers names may not contain非 ascii 字符。如果您希望占位符标识符在向用户显示时包含非 ascii 字符,请使用带有 'name' 键的 CMS_PLACEHOLDER_CONF 设置来指定详细名称。"

我的 settings.py 没有任何 CMS_PLACEHOLDER_CONF,所以它是默认的 {} - 一个空字典。

知道为什么我有错误并且我不能有默认设置吗?

4

1 回答 1

1

你的错误在这一行

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

您不能仅仅因为其中一个翻译可能具有非 ascii 字符而将可翻译字符串作为占位符名称(插槽)传递,更不用说由于字符串用作标识符而出现的多个问题。这是我要做的:

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

然后在占位符的配置中添加正确的可翻译字符串,这使您可以提供更易于阅读的名称,并使用 django 翻译框架将其翻译成不同的语言:

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