django-utils

personal collection of django utilities
git clone https://git.ce9e.org/django-utils.git

commit
cf0d359191bc32a586cbe32a0cf79e30567f9d97
parent
03515a015e1ef6cce1c4547760d2358a9e09c6a8
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2019-09-15 08:46
extend display filter

Diffstat

M utils/templatetags/modeltags.py 14 ++++++++++----

1 files changed, 10 insertions, 4 deletions


diff --git a/utils/templatetags/modeltags.py b/utils/templatetags/modeltags.py

@@ -1,5 +1,6 @@
    1     1 from django import template
    2     2 from django.db import models
   -1     3 from django.utils.translation import gettext_lazy as _
    3     4 
    4     5 register = template.Library()
    5     6 
@@ -17,10 +18,15 @@ def verbose_name(instance, field_name):
   17    18 @register.filter(name='display')
   18    19 def display(instance, field_name):
   19    20     getter = getattr(instance, 'get_{}_display'.format(field_name), None)
   20    -1     if getter:
   21    -1         return getter()
   22    -1     else:
   23    -1         return getattr(instance, field_name)
   -1    21     value = getter() if getter else getattr(instance, field_name)
   -1    22     if value is True:
   -1    23         return _('Yes')
   -1    24     elif value is False:
   -1    25         return _('No')
   -1    26     elif value is None or value == '':
   -1    27         return '—'
   -1    28     elif hasattr(value, 'all'):
   -1    29         return ', '.join(str(x) for x in value.all())
   24    30 
   25    31 
   26    32 @register.filter(name='fields')