J'ai deux méthodes personnalisées pour un gestionnaire de modèle dans Django. L'un d'eux travaille. J'ai récemment ajouté un autre et Django (et python) agissent comme si cela n'existait pas. Voici la partie pertinente du modèle:La méthode personnalisée de Django n'apparaîtra pas
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()
Je reçois une erreur sur le site Web (exécutant le serveur de développement de Django) comme ceci:
'FigureServerManager' object has no attribute 'serve_training_task'
et si je lance dir (FigureServerManager) en python la La méthode serve_training_task n'apparaît pas mais la méthode serve_to_user apparaît. Pourquoi does_training_task ne fonctionne-t-il pas?
vous avez un mélange d'onglets et d'espaces, ce qui est généralement une mauvaise idée. – DTing