Formats a number in the local currency format. E.g., if foo
is equal to 49277
, then
{{ foo|currency }}
would print
$49,277
If your locale is the U.S. You can use this filter in your templates as described in the Django documentation
1 2 3 4 5 6 7 8 9 | from django import template
import locale
locale.setlocale(locale.LC_ALL, '')
register = template.Library()
@register.filter()
def currency(value):
return locale.currency(value, grouping=True)
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 8 months ago
Comments
Cool, I didn't know about the locale module. I had to change line 3 to "locale.setlocale(locale.LC_ALL, 'en_US')" for this to work on a shared server I use.
#
This works great on my ubuntu-hardy laptop but I can't get it to work on my ubuntu-gutsy server.
I get some kind of a Locale C error.
#
FIGURED IT OUT!!!
I had to set up the language pack on my ubuntu-server... Apparently this doesn't get done by default on the server version of ubuntu.
sudo ./install-language-pack en_US then restart x and you're golden.
#
Thanks for this filter.
I also had to use change line 3 to
"locale.setlocale(locale.LC_ALL, 'en_US')"
#
hmm this doesn't seem to be working for me. Nothing is displayed on the page?
#
Not really sure why but I had to change line 9 to;
and then I added the GBP symbol (£) myself. Otherwise nothing was ever displayed.
#
Hm... sometimes 'value' in context may be string. That will be better, imho:
#
My code above lost its formatting. The line numbers are included. So, maybe you can decipher it.
#
i modify your snip to have the money simbol:
from django.utils.translation import ugettext
from django.utils.safestring import mark_safe
I use first import to translate the simbol money (in my django.po)
msgid "currency"
msgstr "\€"
I use the second import to transform "\&\€" to "\€"
and return this
return mark_safe( '%s %s' %(locale.currency(value, symbol=False, grouping=True), ugettext('currency')) )
{"1234.56"|currency} return 1.234,55 €
#
I used the current configured language for the locale. Here's what worked for me:
#
Please login first before commenting.