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