2009-05-22 161 views
0

我是Django的新手。我有一個自定義方法的模型。鑑於我是 檢索一個單一的對象。無法調用自定義方法

這裏是我的代碼 - 我的模型

class Problem(models.Model): 
    problem = models.CharField(max_length=100) 
    solution=models.CharField(max_length=500) 
    def __unicode__(self): 
     return self.problem 
    def retrieve_rankdata(self): 
       return self.problem.split()[0].split('/') 

鑑於我這樣做

def show(request): 
     problem = Problem.objects.all()[0] 
     t1=problem.retrieve_rankdata() 

但是,我得到這個錯誤 「問題」對象有沒有屬性「retrieve_rankdata」

我在做什麼錯?

回答

1

這有點難以分辨,但問題可能與您的縮進有關。您粘貼的代碼中的縮進不一致,因此無法正常工作 - 我懷疑在您的實際代碼中,def retrieve_rankdata是左側多出一些空格。

不要忘記,Python使用縮進來判斷屬性或方法是否屬於類的一部分。因此,如果您的def retrieve_rankdata行沒有實際縮進到與def __unicode__相同的級別,則不會將其視爲Problem類的一部分。

+0

這裏肯定縮進了......好眼睛。 – 2009-05-22 13:07:25