1

我有一个模型

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

4

2 回答 2

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
于 2013-04-21T10:07:46.670 回答
1

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

你可能想打电话然后返回field1field2喜欢:

def field2(self):
    return self.field1()
于 2013-04-21T10:03:24.777 回答