无法调用自定义方法

时间:2009-05-22 12:58:59

标签: django-models

我是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() 

但是,我收到了这个错误 'Problem'对象没有'retrieve_rankdata'属性

我做错了什么?

1 个答案:

答案 0 :(得分:1)

这有点难以辨别,但问题可能出在你的缩进上。您粘贴的代码中的缩进不一致,因此无论如何都无法正常工作 - 我怀疑在您的实际代码中,def retrieve_rankdata左侧还有几个空格。

不要忘记Python使用缩进来判断属性或方法是否属于类的一部分。因此,如果您的def retrieve_rankdata行实际上没有与def __unicode__一行缩进,则不会将其视为Problem类的一部分。