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

Django注册错误信息翻译不全问题求助(DRF与SimpleJWT环境)

修复DRF注册错误信息波兰语翻译不完整问题

方法1:自定义序列化器验证逻辑(最直接)

在注册用的序列化器中,重写email字段的验证方法,直接返回正确的波兰语提示:

from rest_framework import serializers
from django.contrib.auth.models import User

class RegisterSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('email', 'username', 'password')

    def validate_email(self, value):
        if User.objects.filter(email=value).exists():
            raise serializers.ValidationError("Istnieje już konto użytkownika z tą wartością pola email.")
        return value

方法2:补全DRF官方翻译文件

  1. 找到虚拟环境中DRF的波兰语翻译文件:路径一般为venv/lib/pythonX.X/site-packages/rest_framework/locale/pl/LC_MESSAGES/django.po(替换X.X为你的Python版本)
  2. 打开该文件,添加或修改对应翻译条目:
msgid "user account with this email already exists."
msgstr "Istnieje już konto użytkownika z tą wartością pola email."
  1. 编译翻译文件生成.mo格式:
msgfmt django.po -o django.mo

注意:更新DRF后该修改会被覆盖,建议将修改后的翻译文件复制到项目自定义locale目录:

  • 在项目根目录创建locale/pl/LC_MESSAGES文件夹
  • 放入修改后的django.po和django.mo
  • 在settings.py中配置:
import os
from django.conf import settings

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

方法3:排查simplejwt的翻译(若错误来自JWT组件)

如果错误提示由rest_framework_simplejwt抛出,重复方法2的步骤:找到其波兰语翻译文件,添加对应翻译条目并编译,或迁移到项目自定义locale目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:00