No, I don't want a property . I really don't .我要的就是我要的。
由于子类化要求,我正在寻找一种方法来从一组另外两个字段中生成一个字段并将此计算存储在数据库中。不是 Python 中的属性,不是 SQL 计算,而是在保存时更新并按原样存储在数据库中的预计算字段。
例如:
class Help(models.Model):
title = models.TextField()
body = models.TextField()
class SoftwareHelp(Help):
about_software = models.ForeignKey('Software')
无论用户在 title
字段中输入什么,我都希望它在单击保存后显示“Help for”。实际代码中的字段比较多,但是这个说明了原理。
我知道可以通过覆盖 save()
方法来做到这一点,但我想确保我没有两次保存到数据库,并且想知道是否还有其他更好的方法.
我认为最简单的方法是重写save
方法。我看不出为什么要将它保存到数据库两次。
class SoftwareHelp(Help):
about_software = models.ForeignKey('Software')
def save(self, *args, **kwargs):
self.about_software = 'Help for %s' % self.title
return super(SoftwareHelp, self).save(*args, **kwargs)
我是一名优秀的程序员,十分优秀!