如何解决Django:models.py中的def save
我正在尝试在我的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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。