Perché è necessaria una funzione unicode in models.py?Django-Use of unicode
cioè,
def __unicode__(self)
return sumid;
Perché è necessaria una funzione unicode in models.py?Django-Use of unicode
cioè,
def __unicode__(self)
return sumid;
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 chiamaunicode()
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.
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 :-)
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
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
'sumid' sembra non definito. Forse vuoi cambiarlo in 'self.sumid'? – nosklo
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)
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
+ 1: Citare la documentazione –
@ Hulk: Cosa c'è di sbagliato nella documentazione di Django? È eccellente Alcuni dei migliori ci sono. Qual è il problema? –