django-cms和CMS_PLACEHOLDER_CONF错误

时间:2013-07-21 18:03:13

标签: python django django-cms

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

” 在validate_placeholder_name中输入文件“/home/xxx/www/yyy/cms/utils/placeholder.py”,第43行     raise ImproperlyConfigured(“占位符标识符名称可能不会” django.core.exceptions.ImproperlyConfigured:占位符标识符名称不能包含非ascii字符。如果您希望占位符标识符在向用户显示时包含非ascii字符,请使用带有“name”键的CMS_PLACEHOLDER_CONF设置来指定详细名称。 “

我的settings.py没有任何CMS_PLACEHOLDER_CONF,因此它是默认的{} - 一个空的dict。

知道为什么我有错误而我无法进行默认设置?

1 个答案:

答案 0 :(得分:1)

您的错误就在这一行

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

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

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

然后在占位符的配置中添加适当的可翻译字符串,这样您就可以使用django翻译框架提供更易读的名称,并使用不同的语言:

CMS_PLACEHOLDER_CONF = {
    'content': {
        'name': gettext("Content"),
    },
}