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

определенно с отступом здесь неправильно ... хороший глаз. –

+0

Человек, вы были rite.wasted столько времени. Я использовал notepad ++. Затем отредактировал с помощью IDLE, и он показал проблему с отступом. – kost

Смежные вопросы