我使用ugettext_lazy转换默认的AbstractBaseUser字段,但发现了一个问题。我想将名为password的字段翻译成我的母语,但是我唯一要讲的是


  django.core.exceptions.FieldError:类“用户”中的本地字段“密码”与基类“ AbstractBaseUser”中的相似名称字段发生冲突


不好

我的代码看起来像这样

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


有什么方法可以转换AbstractBaseUser或任何其他定义的模型中的所有字段? Django的文档没有提及我的问题。

有趣的是,我不能只翻译这个领域。

最佳答案

根据doc


  在常规的Python类继承中,子类可以覆盖父类的任何属性。在Django中,这不允许用于Field实例的属性(至少当前是不允许的)。如果基类具有一个称为author的字段,则不能在从该基类继承的任何类中创建另一个称为author的模型字段。


从模型中删除或重命名password字段。

如果要翻译password字段,请尝试以下操作:

class User(AbstractBaseUser, PermissionsMixin):
    # define your extra fields

AbstractBaseUser._meta.get_field('password').verbose_name = _('Parool')

关于python - 具有AbstractUser字段的Django ugettext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26874471/

10-11 22:05
查看更多