我想将一个类的两个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'
我该怎么办?谢谢!
答案 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