2010-10-05 25 views
8

Estoy tratando de hacer el tutorial de django desde el sitio web de django, y he encontrado un pequeño problema: he tenido que agregar mis métodos __unicode__ a mis clases de modelos, pero siempre i tratar de devolver los objetos de ese modelo me sale el siguiente error:django error: el objeto 'unicode' no se puede llamar

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

im bastante nuevo en Python y muy nuevo en Django, y no puedo realmente ver lo que he perdidas aquí, si alguien podría señalarlo Identificación se muy agradecido Un poco de código:

Mi 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() 

y en el intérprete de comandos interactivo:

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

Respuesta

29

self.choice es un valor de cadena, pero el código está tratando de llamarlo como una función. Simplemente elimine el () después de él.

+0

lugar, gracias por la ayuda. – richzilla

+0

exactamente lo que necesitaba saber para otro caso. Gracias. – ihightower

Cuestiones relacionadas