2010-10-05 6 views
8

Je suis en train d'essayer de faire le tutoriel django à partir du site web django, et je suis tombé sur un peu de problème: je dois ajouter mes méthodes à mes classes de modèles, mais quand je tente de restituer les objets de ce modèle que je reçois l'erreur suivante:Erreur django: l'objet 'unicode' n'est pas appelable

in __unicode__ 
    return self.question() 
TypeError: 'unicode' object is not callable 

im assez nouveau pour python et très nouveau pour django, et je ne peux pas voir vraiment ce que ive manqué ici, si quelqu'un pouvait l'indiquer id Soyez très reconnaissant. Un peu de code:

Mon models.py:

# The code is straightforward. Each model is represented by a class that subclasses django.db.models.Model. Each model has a number of 
# class variables, each of which represents a database field in the model. 

from django.db import models 

    class Poll(models.Model): 
     question = models.CharField(max_length=200) 
     pub_date = models.DateTimeField('date published') 

     def __unicode__(self): 
      return self.question 


    class Choice(models.Model): 
     poll = models.ForeignKey(Poll) 
     choice = models.CharField(max_length=200) 
     votes = models.IntegerField() 

     def __unicode__(self): 
      return self.choice() 

et dans le shell interactif:

from pysite.polls.models import Poll, Choice 
Poll.objects.all() 

Répondre

29

self.choice est une valeur de chaîne, mais le code tente de l'appeler comme un fonction. Il suffit de supprimer le () après.

+0

sur place, merci pour l'aide. – richzilla

+0

exactement ce que je devais savoir pour un autre cas. Je vous remercie. – ihightower

Questions connexes