2010-02-16 13 views
9

Il mio modello restituisce un decimale (1234567.50), non riesco a visualizzare il decimale con un separatore di migliaia. Django ha un modo per farlo? Devo creare il mio filtro modello?Django separa le migliaia nel modello

Grazie.

risposta

20

È possibile utilizzare il filtro intcomma, ma io non credo che funzionerà su Decimale oggetti e funziona su oggetti decimali. Dovrai prima convertire in float/stringa.

+1

intcomma funziona bene con Oggetti decimali –

+0

Sì, ha funzionato con l'oggetto decimale Grazie – mhost

+0

Non sapevo che funzionasse su oggetti decimali Aggiornamento della risposta – sykora

3

Un modo semplice è quello di importare locale ed eseguire la formattazione nella funzione di visualizzazione.

Ancora più facile da leggere questo: http://docs.djangoproject.com/en/dev/topics/i18n/#overview

Per il formato di localizzazione, è solo necessario impostare USE_L10N = True nel il file delle impostazioni. Se USE_L10N è impostato su su True, Django visualizzerà i numeri e le date nel formato della locale corrente locale. Ciò include la rappresentazione del campo sui modelli e i formati di input consentiti nell'admin.

+4

Django 1.2 ora ha una variabile USE_THOUSAND_SEPARATOR che è possibile impostare in settings.py. Vedi http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#use-thousand-separator. Questo approccio è stato molto più semplice rispetto all'utilizzo del filtro intcomma. Una volta che ho impostato USE_L10N e USE_THOUSAND_SEPARATOR su True, i numeri che volevo mostrare con migliaia di separatori iniziarono a funzionare in modo auto-magico, non è necessario modificare i modelli. Aggiornamento: questo metodo sembra funzionare con ints ma non long :( – Eddified

+0

Cosa succede quando 'USE_L10N' non funziona come qui http://stackoverflow.com/questions/7918523/django-localisation – Sevenearths