无法调用自定义方法
问题描述:
我是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”
我在做什么错?
答
这有点难以分辨,但问题可能与您的缩进有关。您粘贴的代码中的缩进不一致,因此无法正常工作 - 我怀疑在您的实际代码中,def retrieve_rankdata
是左侧多出一些空格。
不要忘记,Python使用缩进来判断属性或方法是否属于类的一部分。因此,如果您的def retrieve_rankdata
行没有实际缩进到与def __unicode__
相同的级别,则不会将其视为Problem
类的一部分。
这里肯定缩进了......好眼睛。 – 2009-05-22 13:07:25