【问题标题】:Refer to a model method within method in Django 1.5参考 Django 1.5 中方法内的模型方法
【发布时间】:2013-04-14 08:10:36
【问题描述】:
我有模特
class ModelName(models.Model):
field = models.CharField(max_length=200)
def field1(self):
return self.field[10:11]
def field2(self):
return self.field1
在我的模板中,我在打印{{ object.field1 }} 时得到了所需的结果,但似乎我无法在模型方法中引用另一个模型方法。打印 {{ object.field2 }} 时失败并显示消息 bound method。
【问题讨论】:
标签:
python
django
templates
methods
model
【解决方案1】:
当你的方法只是 getter 时,最好用@property 装饰它们。然后,您在访问它们时就不需要括号了。 Rohan 是对的,您缺少括号。
class ModelName(models.Model):
field = models.CharField(max_length=200)
@property
def field1(self):
return self.field[10:11]
@property
def field2(self):
return self.field1
【解决方案2】:
在您的 field2() 方法中,您正在返回对 field1 方法的引用,因此模板的行为方式就是这样。
您可能想从field2 调用field1 然后返回?喜欢:
def field2(self):
return self.field1()