Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot get Django translation to work for choice field

Tags:

django

I'm using a choice field in a model and when I display it in the template using {{ object.get_FIELD_display }}, it always shows up in the same language.. even if it's translated in the po file.

Here's a simplified version of my code:

models.py

PRODUCT_WEIGHT_UNIT = (
    ('to', _('ton')),
    ('li', _('pound')),
    ('vg', _(u'vgs³')),
)


class ProduitVrac(models.Model):
    title = models.CharField(_("Title"), max_length=50)
    unit  = models.CharField(max_length=2, choices=PRODUCT_WEIGHT_UNIT) 

template

<ul>
{% for object in object_list %}
<li>
    <h2>{{ object.title }}</h2>
    {# The following will not be translated .. #}
    {{ object.get_unit_display }}
</li>
{% endfor %}
</ul>

Am I missing something ?

like image 433
h3. Avatar asked Apr 13 '11 13:04

h3.


1 Answers

Turns out I was using gettext instead of ugettext_lazy.. it solved my problem.

like image 68
h3. Avatar answered Oct 29 '22 23:10

h3.