2010-02-16 26 views
9

Mi modelo devuelve un decimal (1234567.50), no puedo mostrar el decimal con un separador de miles. ¿Django tiene una manera de hacer esto? ¿Necesito crear mi propio filtro de plantilla?Django miles separados en la plantilla

Gracias.

Respuesta

20

Usted puede utilizar el filtro intcomma, pero no creo que funcionará en decimal objetos y funciona en objetos decimales. Primero tendrá que convertir a float/string.

+1

intcomma funciona muy bien con Objetos decimales –

+0

Sí funcionó con el objeto decimal Gracias – mhost

+0

No sabía que funcionaba en objetos decimales. Actualizado la respuesta – sykora

3

Una manera fácil es importar locale y hacer el formateo en su función de vista.

Incluso más fácil de leer esto: http://docs.djangoproject.com/en/dev/topics/i18n/#overview

Para el formato de la localización, es sólo necesario establecer USE_L10N = True en el archivo de configuración. Si USE_L10N se establece en en True, Django mostrará los números y las fechas en el formato de la configuración regional actual . Eso incluye el campo representación en plantillas, y formatos de entrada permitidos en el administrador.

+4

Django 1.2 ahora tiene una variable USE_THOUSAND_SEPARATOR que puede establecer en settings.py. Ver http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#use-thousand-separator. Este enfoque fue mucho más fácil que usar el filtro intcomma. Una vez que configuré USE_L10N y USE_THOUSAND_SEPARATOR en True, los números que quería mostrar con miles de separadores recién comenzaban a funcionar de forma automática, sin necesidad de edición de plantillas. Actualización: este método parece funcionar con ints pero no anhela :( – Eddified

+0

¿Qué sucede cuando 'USE_L10N' no funciona como aquí http://stackoverflow.com/questions/7918523/django-localisation – Sevenearths