2013-04-21 62 views
1

我有一個模型參照模型方法在Django方法中的1.5

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

回答

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

在您的field2()方法中,您返回對field1方法的引用,因此模板表現如此。

您可能想從field2打電話field1然後返回?像:

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