Django:如何将类的两个属性组合到同一个类的另一个属性中?

时间:2014-08-07 17:38:47

标签: python django

我想将一个类的两个CharField属性组合到同一个类的另一个属性中。

在伪代码中会是这样的:

class Client(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    full_name = "%s %s" % (self.first_name, self.last_name)

然后我希望能够像这样使用full_name:

>>> Client.objects.create(first_name="John", last_name="Smith")
>>> c=Client.objects.get(name="John")
>>> c.last_name
u'Smith'
>>> c.full_name
u'John Smith'

我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:3)

您可以在模型中为其定义方法:

def full_name(self):
    return "%s %s" % (self.first_name, self.last_name)

然后使用:

c.full_name()

或将其转换为属性:

@property
def full_name(self):
        return "%s %s" % (self.first_name, self.last_name)

然后你就可以做到:

c.full_name