saul-g / El-libro-de-Django

La versiòn en español del libro Django.
http://django-book.blogspot.mx/
Other
94 stars 53 forks source link

Página 36 del Tutorial 1.8.0.pfd #3

Closed antoniovj1 closed 6 years ago

antoniovj1 commented 9 years ago

Al final de la pagina 36 del Tutorial 1.8.0.pfd aparece ese codigo.

from   django.db   import   models  

class   Pregunta(models.Model):  
     #   ...   Aquí   van   los   campos  

     def   __str__(self):             #   __unicode__   en   Python   2  
         return   self.Pregunta  

class   Opcion(models.Model):  
     #   ...   Aquí   van   los   campos  

     def  __str__(self):              #   __unicode__   en   Python   2  
         return   self.Opcion  

Pregunta y Opcion , no son atributos de la clase y al hacer uso de ellos aparece:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from   encuestas.models   import   Pregunta,   Opcion  
>>> Pregunta.objects.all()  
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/django/db/models/query.py", line 141, in __repr__
    return repr(data)
  File "/usr/local/lib/python3.4/dist-packages/django/db/models/base.py", line 496, in __repr__
    u = six.text_type(self)
  File "/home/antonio/django/misitio/encuestas/models.py", line 11, in __str__
    return self.Pregunta
AttributeError: 'Pregunta' object has no attribute 'Pregunta'

Creo que el código correcto es:

class Pregunta(models.Model):
    def __str__(self):
         return self.texto_pregunta 

class Opcion(models.Model):

    def __str__(self):
        return self.texto_opcion
cgaete commented 8 years ago

Gracias por la sugerencia. Una pregunta cómo te ha funcionado django con python 3.x? ¿has tenido problemas con la codificación en español en acentos y cosas así?