我使用ugettext_lazy
翻译默认AbstractBaseUser
字段,但我发现了一个问题。我想将名为password
的字段翻译成我的母语,但我只记得
django.core.exceptions.FieldError:“User”类中的本地字段“password”与基类“AbstractBaseUser”中类似名称的字段发生冲突
这不好。
我的代码看起来像这样
class User(AbstractBaseUser, PermissionsMixin):
password = models.CharField(_('Parool'), max_length=128)
....
有没有办法翻译AbstractBaseUser
或任何其他定义模型的所有字段? Django的文档对我的问题一无所知。
有趣的是,我无法翻译这个领域。
答案 0 :(得分:2)
基于doc:
在普通的Python类继承中,子类允许覆盖父类的任何属性。在Django中,不允许使用Field实例的属性(至少目前不是这样)。如果基类有一个名为author的字段,则无法在从该基类继承的任何类中创建另一个名为author的模型字段。
从模型中删除或重命名password
字段。
如果您要翻译password
字段,请尝试以下操作:
class User(AbstractBaseUser, PermissionsMixin):
# define your extra fields
AbstractBaseUser._meta.get_field('password').verbose_name = _('Parool')