如果我有一个Person模型如下:
class Person
first_name = models.CharField
last_name = models.CharField
我想创建一个复合属性全名,它将是名字和姓氏的组合。
full_name = self.first_name + ' ' + self.last_name
此外,只要修改人员模型中的名字,就应该自动更新full_name。
答案 0 :(得分:4)
只需在模型上设为property即可。
class Person(...):
...
@property
def full_name(self):
return u'%s %s' % (self.first_name, self.last_name)
答案 1 :(得分: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)