Voici un simple tag à copier coller dans votre projet afin d'utiliser très simplement "extended choices" côté template. Cet article est un complément de Django Extented Choices.
Simple tag
from pdn import constants @register.simple_tag def get_constant(constant, value, constant_type="CHOICES_DICT"): try: return getattr(getattr(constants, constant), constant_type)[int(value)] except AttributeError: return "NC"
Exemple de constates:
VISIBILITIES = Choices( ('PRIVATE', 0, _(u'Privé')), ('SHARED', 5, _(u'Partagé')), ('PUBLIC', 10, _(u'Public')), )
Côté template
Ici company.visibility vaut 0
{% get_constant "VISIBILITIES" company.visibility %} -> Privé
{% get_constant "VISIBILITIES" company.visibility "CHOICES_DICT" %} -> Privé
{% get_constant "VISIBILITIES" company.visibility "VARNAME_DICT" %} PRIVATE
PS: Merci à Haypo et Sp4rKy pour la simplification d'écriture