Django集成Rosetta访问指定路径报TypeError错误
Django集成Rosetta报错排查解决步骤
1 确认国际化核心配置
该报错绝大多数场景是settings.py中国际化相关配置缺失,导致Rosetta读取翻译目录时拿到空值,优先检查以下配置项:
- 确认
USE_I18N = True已开启 - 必须显式配置
LOCALE_PATHS指定翻译文件存储路径,示例配置如下:
import os # 前提是你项目已经定义了BASE_DIR为根目录路径 LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), )
配置完成后需手动在项目根目录创建locale文件夹,否则Rosetta读取路径时会返回None触发类型错误
2 替换适配版本的Rosetta
Django 3.2版本和你安装的0.9.5、0.9.7版本Rosetta存在已知兼容性问题,推荐安装适配的0.9.8版本:
# 先卸载现有版本 pip uninstall django-rosetta -y # 安装适配版本 pip install django-rosetta==0.9.8
3 检查目录权限
确认locale目录对Django运行用户开放读写权限,Linux/Mac环境可执行以下命令修正:
chmod 755 ./locale
4 验证修复效果
先执行翻译文件生成命令,确认基础国际化流程正常:
# 以生成中英文翻译文件为例 python manage.py makemessages -l zh_Hans python manage.py makemessages -l en
启动服务后再次访问rosetta路径即可正常加载。
内容的提问来源于stack exchange,提问作者Aleooo
相关产品推荐
相关产品推荐

