我试图获取新创建的用户的last_name和first_name,并使用这两个值创建foldername。
但是我得到了类型对象' User'没有属性' first_name'
这是我的用户模型:
def create_folder_name(first_name, last_name):
return first_name + last_name
class User(AbstractUser):
folder_name = models.CharField(max_length=255, unique=True,
default=create_folder_name(User.first_name, User.last_name))
如何将User.first_name传递给我的函数
答案 0 :(得分:4)
如果default
是从其他字段值构造的,则需要有一个模型实例来获取值。
class User(AbstractUser):
folder_name = models.CharField(max_length=255, unique=True)
def save(self, *args, **kwargs):
if not self.folder_name:
self.folder_name = create_folder_name(self.first_name, self.last_name)
super(User, self).save(*args, **kwargs)
答案 1 :(得分:1)
我认为您最好覆盖save
模式中的User
方法:
class User(AbstractUser):
folder_name = models.CharField(max_length=255, unique=True)
def save(self, *args, **kwargs):
self.folder_name = create_folder_name(self.first_name, self.last_name)
super(User, self).save(*args, **kwargs)