0

如果我有一个 Person 模型如下:

class Person
    first_name = models.CharField
    last_name = models.CharField

我想创建一个复合属性全名,它是名字和姓氏的组合。

full_name = self.first_name + ' ' + self.last_name

此外,每当修改人员模型中的名字时,full_name 应该会自动更新。

4

2 回答 2

4

只需将其设为模型上的属性即可。

class Person(...):
   ...
  @property
  def full_name(self):
    return u'%s %s' % (self.first_name, self.last_name)
于 2013-05-20T22:58:04.160 回答
1

我发现这可以通过覆盖自定义保存方法来完成。

class Person
    first_name = models.CharField()
    last_name = models.CharField()
    full_name = models.CharField()

def save(self, *args, **kwargs):
    self.full_name = self.first_name + ' ' + self.last_name
    super(Person, self).save(*args, **kwargs)
于 2013-05-21T04:16:03.840 回答