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

Django 修改用户子类中的用户名字段,django,model,field,Django,Model,Field,如何在模型子类中修改父类中字段的属性 这意味着:我想创建一个子类djando.contrib.auth.models.AbstractUser,让我的自定义模型具有相同的字段,但修改用户名字段:我想更改它的验证器和帮助文本 问题:如何在子类中重新定义字段?我必须更改的内容与数据库无关,但与模型逻辑相关,我的意图是至少在模型表单中使用该模型。您可以通过使用模型元类中的get\u field方法来获取字段: class User(AbstractUser): custom_field = m

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

这意味着:我想创建一个子类
djando.contrib.auth.models.AbstractUser
,让我的自定义模型具有相同的字段,但修改
用户名
字段:我想更改它的
验证器
帮助文本


问题:如何在子类中重新定义字段?我必须更改的内容与数据库无关,但与模型逻辑相关,我的意图是至少在模型表单中使用该模型。

您可以通过使用模型元类中的
get\u 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
的所有子类和超类的字段设置,只要它们有字段,因为字段的元数据在所有类中共享

谢谢:D我忘了那部分,现在我记起来了:D。