Невозможно вызвать пользовательский метод - PullRequest
0 голосов
/ 22 мая 2009

Я новичок в Джанго. У меня есть модель с пользовательским методом. В виду я извлечение одного объекта.

Вот мой код - Моя модель

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 Ответ

1 голос
/ 22 мая 2009

Сложно сказать, но проблема может быть в вашем отступе. Отступы в вставленном вами коде противоречивы, так что в любом случае он не будет работать должным образом - я подозреваю, что в вашем реальном коде def retrieve_rankdata еще на пару мест слева.

Не забывайте, что Python использует отступ для определения, является ли атрибут или метод частью класса. Поэтому, если ваша строка def retrieve_rankdata не имеет отступа на том же уровне, что и строка def __unicode__, она не будет считаться частью класса Problem.

...