translated fields work out
This commit is contained in:
parent
5d69f2a5e7
commit
2863a338e1
|
|
@ -67,11 +67,17 @@ def get_default_locale():
|
|||
settings.FALLBACK_LOCALE
|
||||
|
||||
|
||||
def translate_field(self, field_name):
|
||||
def translate_field(self, field_name, toggle_field_name=None):
|
||||
def translate(self):
|
||||
field = getattr(self, field_name)
|
||||
locale_requested = to_locale(get_language())
|
||||
has_toggler = hasattr(self, toggle_field_name)
|
||||
is_active = getattr(self, toggle_field_name, {}).get(locale_requested) if toggle_field_name else None
|
||||
if isinstance(field, dict):
|
||||
value = field.get(to_locale(get_language()))
|
||||
if has_toggler and not is_active:
|
||||
value = None
|
||||
else:
|
||||
value = field.get(locale_requested)
|
||||
# fallback
|
||||
if value is None:
|
||||
value = field.get(get_default_locale())
|
||||
|
|
@ -114,7 +120,7 @@ class TranslatedFieldsMixin:
|
|||
field_name = field.name
|
||||
if isinstance(field, TJSONField):
|
||||
setattr(cls, f'{field.name}_translated',
|
||||
property(translate_field(self, field_name)))
|
||||
property(translate_field(self, field_name, f'locale_to_{field_name}_is_active')))
|
||||
setattr(cls, f'{field_name}_indexing',
|
||||
property(index_field(self, field_name)))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user