请参阅Django 1.5中方法中的模型方法

时间:2013-04-21 09:55:09

标签: python django templates methods model

我有一个模特

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

2 个答案:

答案 0 :(得分:3)

当你的方法只是getter时,最好用@property来装饰它们。访问它们时,您将不需要括号。罗汉是对的,你错过了括号。

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

答案 1 :(得分:1)

field2()方法中,您将返回对field1方法的引用,因此模板的行为就是这样。

您可能需要从field1致电field2然后返回?像:

def field2(self):
    return self.field1()