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



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

这意味着:我想创建djando.contrib.auth.models.AbstractUser的子类,并使用相同字段的自定义模型,但修改username字段:我想更改其validatorshelp_text

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

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

最新更新