【问题标题】:Django: When a user profile is created automatically, what is it set to?Django:自动创建用户配置文件时,它设置为什么?
【发布时间】:2012-08-02 01:08:34
【问题描述】:

我有一个在保存用户后自动创建的用户配置文件:

def create_user_info(sender, instance, created, **kwargs):
    if created:
        UserInfo.objects.create(user=instance)

post_save.connect(create_user_info, sender=User)


class UserInfo(models.Model):
    user = models.OneToOneField(User)
    pen_name = models.CharField(max_length=30)
    activated = models.BooleanField()
    def __unicode__(self):
        return self.email + '-' + self.pen_name

当我使用 User.objects.create_user 函数创建用户对象时,用户配置文件中的变量/字段会发生什么情况。除非我弄错了,否则它们不能为空。

【问题讨论】:

    标签: python django authentication django-models django-users


    【解决方案1】:

    User Profile 与任何其他模型没有什么不同。因此,如果您将其保存到数据库而不指定所有字段,它的行为与任何其他模型的行为完全相同。它将有空字段。
    当然,在您的情况下,由于您不允许 blank=True, null=True,这将引发错误并要求您指定字段。

    【讨论】:

      【解决方案2】:

      一开始它们是空的。您可以像任何其他模型一样通过操作UserInfo 来填写字段。

      【讨论】:

      • 所以和其他模型不同,所有字段都可以为空?
      • 您可以通过将blank=True 或null=True 或两者的组合传递给模型中的字段来允许任何模型中的字段为空。
      猜你喜欢
      • 2011-08-05
      • 2016-03-15
      • 2016-12-03
      • 1970-01-01
      • 2012-05-09
      • 2012-07-14
      • 2013-04-05
      • 1970-01-01
      • 2019-05-23
      相关资源
      最近更新 更多