使用AbstractUser字段的Django ugettext

时间:2014-11-11 20:59:37

标签: python django

我使用ugettext_lazy翻译默认AbstractBaseUser字段,但我发现了一个问题。我想将名为password的字段翻译成我的母语,但我只记得

  

django.core.exceptions.FieldError:“User”类中的本地字段“password”与基类“AbstractBaseUser”中类似名称的字段发生冲突

这不好。

我的代码看起来像这样

class User(AbstractBaseUser, PermissionsMixin):
    password = models.CharField(_('Parool'), max_length=128)
    ....

有没有办法翻译AbstractBaseUser或任何其他定义模型的所有字段? Django的文档对我的问题一无所知。

有趣的是,我无法翻译这个领域。

1 个答案:

答案 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')