python – 如何在Django模型中轻松创建计算字段?

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')

无论用户在标题字段中输入什么内容,我都希望在点击保存后说出“帮助”.实际上,代码有更多的字段,但这解释了原理.

我知道可以通过覆盖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)
点赞