【问题标题】:Modifying username field in user subclass修改用户子类中的用户名字段
【发布时间】:2014-05-27 11:31:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: django model field


    【解决方案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 的所有子类和超类的字段设置,只要它们具有该字段,因为该字段的元数据在所有类之间共享。

    【讨论】:

    • 谢谢:D 我忘了那部分,现在我记得了:D。
    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 2023-04-09
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2013-01-28
    • 2021-02-28
    相关资源
    最近更新 更多