2009-05-22 97 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