You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django REST Framework国际化失效,配置后仍显示英文提示

问题描述

我尝试配置Django REST Framework(DRF)国际化,已按照官方文档在settings.py中添加了LocaleMiddleware中间件、设置LANGUAGE_CODE为"it"、配置支持的语言列表并开启USE_I18N。更新中间件顺序后,调用重置密码的POST接口时,返回的字段必填提示仍是英文“This field is required.”,期望显示意大利语“Questo campo è obbligatorio.”,请问settings.py中还缺少哪些配置?

补充配置项

以下是settings.py中可能遗漏的关键配置:

  • 配置DRF的语言协商规则
    DRF需明确配置以支持语言识别与应用,添加如下内容:

    REST_FRAMEWORK = {
        'DEFAULT_CONTENT_NEGOTIATION_CLASS': 'rest_framework.negotiation.DefaultContentNegotiation',
        # 若需强制使用默认语言(不依赖请求头),可添加此行
        'FORCE_LANGUAGE_CODE': 'it',
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            # 按需保留其他渲染器,如BrowsableAPIRenderer
        ]
    }
    
  • 确认LocaleMiddleware的顺序
    确保中间件顺序严格遵循要求:位于SessionMiddleware之后、CommonMiddleware之前,示例:

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.locale.LocaleMiddleware',  # 位置不可错
        'django.middleware.common.CommonMiddleware',
        # 其他中间件
    ]
    
  • 指定翻译文件存放路径
    告诉Django翻译文件的位置,添加:

    import os
    LOCALE_PATHS = [
        os.path.join(BASE_DIR, 'locale'),
    ]
    

    之后需通过django-admin makemessages -l it生成意大利语翻译模板,填入对应翻译后执行django-admin compilemessages编译生效。

  • 开启本地化支持
    部分表单验证提示依赖该设置,添加:

    USE_L10N = True
    

内容的提问来源于stack exchange,提问作者zabitstack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:30:44