2009-11-30 17 views

risposta

14

Non lo è. Se si definisce un metodo __unicode__(), Django lo chiamerà quando è necessario eseguire il rendering di un oggetto in un contesto in cui è necessaria una rappresentazione di stringa (ad esempio nelle pagine di amministrazione del modello).

Il documentation dice:

Il metodo viene chiamato __unicode__() ogni volta che si chiama unicode() su un oggetto . Dal momento che i database backend di Django restituiranno le stringhe Unicode negli attributi del modello, è preferibile scrivere __unicode__() metodo per il modello.

+0

Sì, grazie, ho familiarità con Python e la sintassi, ma sono sicuramente nuovo di Django .. Ci sono altri collegamenti utili che il solito tutorial django..è così per favore guidami ad esso ........ Ho avuto un'idea di chi è ... Grazie per tutte le risposte ........ – Hulk

+2

+ 1: Citare la documentazione –

+0

@ Hulk: Cosa c'è di sbagliato nella documentazione di Django? È eccellente Alcuni dei migliori ci sono. Qual è il problema? –

6

Sono un po 'nuovo per Django, ma penso di poterti aiutare.

In primo luogo, non è esattamente richiesto, ma è davvero una buona idea. Il campo è usato per creare rappresentazioni dei tuoi oggetti nell'amministratore di Django (altrimenti hanno tutti lo stesso nome :-P) e quando stampi un oggetto sulla tua finestra di terminale per vedere cosa sta succedendo (altrimenti ottieni un generico per lo più inutile Messaggio).

In secondo luogo, da quello che hai scritto, sembra che tu sia nuovo in Python. Raccomando di leggere alcuni tutorial Python sulla sintassi della classe. Inoltre, il punto e virgola non è necessario in questa lingua. La sintassi corretta per creare il metodo unicode è:

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

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

Procedimento __unicode__ ha doppi sottolineatura perché è una funzione speciale, cioè quando la funzione built unicode(obj) viene chiamata su di esso, esso restituisce una rappresentazione di stringa unicode di quell'oggetto (una specie di java's ToString).

Spero che questo aiuta :-)

+0

Sì, grazie , ho familiarità con Python e la sintassi, ma sono sicuramente nuovo di Django .. Ci sono altri collegamenti utili rispetto al solito tutorial di django. È così per favore guidami ad esso ........ Ho avuto un'idea di che è ... Grazie per tutte le risposte ........ – Hulk

+0

Vorrei poterti indirizzare ad alcune altre fonti, ma finora tutto ciò che ottengo è un blog casuale quando visualizzo messaggi di errore su Google e così via. Trovo che la documentazione di solito sia abbastanza buona, devi solo imbatterti in un problema inquadrato nel modo giusto per capire perché hanno fatto certe cose. – SapphireSun

+1

'sumid' sembra non definito. Forse vuoi cambiarlo in 'self.sumid'? – nosklo

3

Credo che gli altri hanno dato alcune spiegazioni dettagliate che dovrebbero essere più che sufficiente per voi. Ma ecco una risposta semplice: toString() in Java (e molte altre lingue)