考虑这个例子从Querying full name采取:覆盖保存方法vs模型方法?
class User(models.Model):
first_name = models.CharField(max_length=64)
last_name = models.CharField(max_length=64)
full_name = models.CharField(max_length=128)
def save(self, *args, **kw):
self.full_name = '{0} {1}'.format(first_name, last_name)
super(User, self).save(*args, **kw)
根据Django Model Method这也可以这样写:
class User(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def _get_full_name(self):
"Returns the person's full name."
return '%s %s' % (self.first_name, self.last_name)
full_name = property(_get_full_name)
有什么区别?哪一个被推荐?
谢谢。我现在明白要使用哪个。 – norbertpy 2014-11-24 23:25:02