如何为django的User对象设置默认值?

时间:2013-12-28 18:23:40

标签: django default

我希望新用户'is_active的默认值为False。在创作之前有没有办法?目前我正在使用form_valid在我的注册视图中的form.instance上设置它,但似乎会有管理员设置或其他东西。

1 个答案:

答案 0 :(得分:1)

在阅读了一下源代码之后,似乎is_active是AbstractBaseUser的一部分,甚至不作为字段,这里是直接的代码摘录:

class AbstractBaseUser(models.Model):
    # ...    
    is_active = True

仅在稍后,is_active通过另一个名为AbstractUser的模型转换为字段:

class AbstractUser(AbstractBaseUser, PermissionsMixin):
    # ...
    is_active = models.BooleanField(_('active'), default=True,
        help_text=_('Designates whether this user should be treated as '
                    'active. Unselect this instead of deleting accounts.'))

User类本身几乎没有定义,真的......整个设置令人费解,所以我觉得没有简单的方法可以做到(除非你想改变源代码,根本不推荐) 。使用form_valid声音就像这里最好的方法。