2009-11-30 22 views

Respuesta

14

No lo es. Si define un método __unicode__(), Django lo llamará cuando necesite procesar un objeto en un contexto donde se necesita una representación de cadena (por ejemplo, en las páginas de administración del modelo).

El documentation dice:

El método se llama __unicode__() cada vez que llame unicode() en un objeto . Como los back-end de la base de datos de Django devolverán las cadenas Unicode en los atributos de su modelo, usted normalmente querrá escribir un método __unicode__() para su modelo.

+0

Sí, gracias, estoy familiarizado con Python y la sintaxis, pero definitivamente soy nuevo en django. ¿Hay algún otro enlace útil que el tutorial habitual de django ... Así que por favor guíenme a él ........ Tengo una idea de lo que es ... Gracias por todas las respuestas ........ – Hulk

+2

+ 1: Cita la documentación –

+0

@Hulk: ¿Qué pasa con la documentación de Django? Es excelente. Algunos de los mejores que hay. ¿Cuál es el problema? –

6

Soy un poco nuevo en Django, pero creo que puedo ayudarte.

En primer lugar, no se requiere exactamente, pero es una muy buena idea. El campo se usa para crear representaciones de tus objetos en el administrador de Django (de lo contrario, todos tienen el mismo nombre :-P) y cuando imprimes un objeto en la ventana de tu terminal para ver qué está sucediendo (de lo contrario obtienes un genérico casi inútil mensaje).

En segundo lugar, por lo que escribió, parece que es nuevo en Python. Recomiendo leer algunos tutoriales de Python sobre la sintaxis de la clase. Además, los puntos y comas no son necesarios en este idioma. La sintaxis correcta para crear el método Unicode es:

class Foo(models.Model): 
    # Model fields go here 

    def __unicode__(self): 
     return u"%i" % self.sumid 

El método __unicode__ tiene doble subrayado, ya que es una función especial, es decir, cuando la función incorporada unicode(obj) se llama en él, devuelve una representación de cadena Unicode de ese objeto (algo así como java ToString).

espero que esto ayuda :-)

+0

Sí, gracias ,, , estoy familiarizado con Python y la sintaxis pero definitivamente soy nuevo en django ... ¿Hay algún otro enlace útil que el tutorial habitual de django? Así que por favor guíenme a él ........ Tengo una idea de que es ... Gracias por todas las respuestas ........ – Hulk

+0

Desearía poder señalarte algunas otras fuentes, pero hasta ahora todo lo que obtengo son blogs aleatorios cuando googleo mensajes de error y cosas así. Encuentro que la documentación por lo general es bastante buena, solo tiene que encontrarse con un problema enmarcado de la manera correcta para entender por qué hicieron ciertas cosas. – SapphireSun

+1

'sumid' parece no estar definido. ¿Quizás quieras cambiarlo a 'self.sumid'? – nosklo

3

Creo que los otros han dado algunas explicaciones detalladas que debería ser más que suficiente para usted. Pero aquí hay una respuesta directa: __unicode__() es equivalente a toString() en Java (y en muchos otros idiomas)