在我的项目中我有这个错误:
” 在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。
知道为什么我有错误而我无法进行默认设置?
答案 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"),
},
}