我有一个用户模型。我想要的是,当用户注册时,松弛字段中填充了来自使用用户电子邮件作为参数的函数的数据。 (基本上,松弛应该是通过电子邮件生成的“ 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))
我认为很清楚我要尝试建立的内容,但是使用“默认”的方法可能不合适。有什么建议?谢谢。
答案 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)