У меня есть два пользовательских метода для менеджера моделей в Django. Один из них работает. Я недавно добавил еще один, и Django (и python) действуют так, как будто его не существует. Вот соответствующая часть модели:
class FigureServerManager(models.Manager):
#This method takes as input a user and grabs a figure that is not marked complete for which that user has not already submitted a result
def serve_to_user(self,user):
not_complete=super(FigureServerManager, self).get_query_set().filter(complete=0)
for Figure in not_complete:
checkifresult=User.objects.get(pk=user).result_set.all().filter(figure=Figure.id)
if not checkifresult:
return Figure
#This is a copy of the above method that I want to change to do something else, but I can't even get it to show up yet
def serve_training_task(self, user):
with_correct_ans=super(FigureServerManager, self).get_query_set().filter(complete=0)
for Figure in with_correct_ans:
checkifresult=User.objects.get(pk=user).result_set.all().filter(figure=Figure.id)
if not checkifresult:
return Figure
class Figure(models.Model):
doi=models.CharField(max_length=20)
url=models.CharField(max_length=200)
image=models.ImageField(upload_to='classify')
complete=models.BooleanField()
#include the default manager
objects=models.Manager()
#add the extra one for serving figures
serve_objects=FigureServerManager()
Я получаю сообщение об ошибке на веб-сайте (с сервером разработки Django), например:
'FigureServerManager' object has no attribute 'serve_training_task'
и если я запускаю dir (FigureServerManager) в python, метод serve_training_task не появляется, но метод serve_to_user появляется. Почему не работает serve_training_task?