问题描述
我正在尝试在我的models.py中添加保存功能,但看来我做错了什么。用户必须输入名字和姓氏。在没有他或她输入任何更多数据的情况下,应该用这些字段的组合填充我的models.py中的另一个字段。
models.py:
class Coworker(models.Model):
first_name = models.CharField(max_length=50,null=False,blank=False)
last_name = models.CharField(max_length=50,blank=False)
full_name = models.CharField(max_length=100,blank=False)
def save(self,*args,**kwargs):
self.full_name = self.first_name + " " + self.last_name
super().save(*args,**kwargs)
这甚至可能吗?感谢您的所有帮助。
周末愉快!
解决方法
请不要。这是冗余数据。事实证明,即使在同一数据库上,保持数据同步也比乍看之下更具挑战性。 Django还具有多个功能,例如.update(…)
[Django-doc],用于更新表中的记录,但绕过了title
调用。
例如,您可以使用在Django / Python级别运行时将计算.save()
的属性:
full_name
例如,如果您希望能够在class Coworker(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
@property
def full_name(self):
return f'{self.first_name} {self.last_name}'
上进行过滤,则可以使用Concat
[Django-doc]进行注释:
full_name