Python Django使用同一模型中的另一个字段填充模型中的字段

时间:2020-08-01 11:16:44

标签: python django model

我有一个用户模型。我想要的是,当用户注册时,松弛字段中填充了来自使用用户电子邮件作为参数的函数的数据。 (基本上,松弛应该是通过电子邮件生成的“ DS8ds9D”之类的东西。

我具有执行“ get_slack(email)”的功能,如果使用电子邮件在模型外部运行,该功能我可以理解。我收到的错误是当我尝试“ makemigrations”时说“ get_slack(email)”中的电子邮件为空。

class User(AbstractBaseUser, PermissionsMixin):

    email = models.EmailField(unique=True)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(default=timezone.now)

    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    slack = models.CharField(max_length=255, default=get_slack(email))

我认为很清楚我要尝试建立的内容,但是使用“默认”的方法可能不合适。有什么建议?谢谢。

1 个答案:

答案 0 :(得分:1)

如果要在用户注册时创建松弛字段,则应覆盖默认的保存方法。

class User(AbstractBaseUser, PermissionsMixin):
    # ...

    def save(self, *args, **kwargs):
        self.slack = self.image    # do whatever processing you want
        super(User, self).save(*args, **kwargs)

ReferenceDocumentation