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

Python Django使用同一模型中的另一个字段填充模型中的字段,python,django,model,Python,Django,Model,我有一个用户模型。我想要的是,当用户注册时,slack字段将填充来自使用用户电子邮件作为参数的函数的数据。(基本上,slack应该类似于电子邮件生成的“DS8ds9D” 我有一个功能,可以实现“get_slack(email)”,我知道如果在模型外运行时使用电子邮件,该功能会起作用。我得到的错误是,当我尝试“makemigrations”时,表示来自“get_slack(email)”的电子邮件为空 我想很清楚我试图建立的是什么,但是我使用“默认”的方法可能不合适。有什么建议吗?谢谢。如果你想在

我有一个用户模型。我想要的是,当用户注册时,slack字段将填充来自使用用户电子邮件作为参数的函数的数据。(基本上,slack应该类似于电子邮件生成的“DS8ds9D”

我有一个功能,可以实现“get_slack(email)”,我知道如果在模型外运行时使用电子邮件,该功能会起作用。我得到的错误是,当我尝试“makemigrations”时,表示来自“get_slack(email)”的电子邮件为空


我想很清楚我试图建立的是什么,但是我使用“默认”的方法可能不合适。有什么建议吗?谢谢。

如果你想在用户注册时创建slack字段,你应该覆盖默认的save方法

类用户(AbstractBaseUser,PermissionsMixin):
# ...
def保存(自身、*args、**kwargs):
self.slack=self.image#做任何你想做的处理
超级(用户,自我)。保存(*args,**kwargs)

和。

试试
self.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))