如何配置Django CMS页面树默认语言为荷兰语?
Django CMS默认语言设置为荷兰语的解决方案
针对你遇到的后台编辑默认英语、切换后再打开回到空白英语页面的问题,可通过以下配置调整解决:
1. 强化CMS_LANGUAGES的默认语言优先级
在现有CMS_LANGUAGES配置中,给荷兰语项添加default: True标记,并在全局默认配置中指定default_language:
CMS_LANGUAGES = { 1: [ { 'code': 'nl', 'name': _('Dutch'), 'fallbacks': ['en', ], 'public': True, 'hide_untranslated': True, 'redirect_on_fallback': False, 'default': True, # 标记为当前站点的默认编辑语言 }, { 'code': 'en', 'name': _('English'), 'public': True, }, ], 'default': { 'fallbacks': ['nl', 'en'], 'redirect_on_fallback': False, 'public': True, 'hide_untranslated': True, 'default_language': 'nl', # 设置全局默认语言 } }
2. 添加全局默认语言配置
在settings.py中新增以下配置,直接指定Django CMS后台的默认编辑语言:
CMS_DEFAULT_LANGUAGE = "nl"
3. 验证中间件顺序(确保现有配置无误)
你的中间件顺序已经符合要求,无需调整:
django.middleware.locale.LocaleMiddleware位于SessionMiddleware之后、CommonMiddleware之前cms.middleware.language.LanguageCookieMiddleware放在所有CMS中间件的最后
4. 解决切换编辑后显示空白英语页面的问题
该问题是因为荷兰语页面已发布,但英语版本未创建,且hide_untranslated设为True导致英语版本无内容显示。解决方式:
- 创建页面时优先完成荷兰语版本编辑,再按需添加英语版本
- 若需保留英语版本入口,可给英语语言配置添加
hide_untranslated: False(不推荐,会显示空白内容)
5. 确保配置生效
- 重启Django服务,让新配置加载
- 若之前手动选择过英语作为后台语言,清除浏览器Cookie后重新登录,系统会优先使用配置的荷兰语
内容的提问来源于stack exchange,提问作者sitWolf
相关产品推荐
相关产品推荐

