修改用户子类中的用户名字段

时间:2014-04-13 15:00:08

标签: django model field

如何在模型子类中修改父类中字段的属性?

这意味着:我想创建一个djando.contrib.auth.models.AbstractUser的子类,并让我的自定义模型具有相同的字段但是要修改username字段:我想要更改其validators和{{ 1}}。

问题:如何重新定义子类中的字段?我必须改变的事情不是数据库相关的,而是与模型逻辑相关的,我的意图是至少在ModelForm中使用该模型。

1 个答案:

答案 0 :(得分:1)

您可以使用模型的元类中的get_field方法获取字段:

class User(AbstractUser):
    custom_field = models.BooleanField()
    ...

User._meta.get_field('username').validators = [list of validators,]
User._meta.get_field('username').help_text = "Help text"

请注意,这将改变User的所有子类和超类的字段设置,只要它们具有该字段,因为字段的元数据在所有类之间共享。