From e8c2239deb06324930e4022e80148ea42a046a09 Mon Sep 17 00:00:00 2001 From: Tayyeb Date: Mon, 28 Jan 2019 15:13:01 +0330 Subject: [PATCH] add fallback_languages_per_field to TranslationOptions --- modeltranslation/translator.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modeltranslation/translator.py b/modeltranslation/translator.py index 901f7016..65033381 100644 --- a/modeltranslation/translator.py +++ b/modeltranslation/translator.py @@ -475,15 +475,18 @@ def _register_single_model(self, model, opts): # Substitute original field with descriptor model_fallback_languages = getattr(opts, 'fallback_languages', None) + model_fallback_languages_per_field = getattr(opts, 'fallback_languages_per_field', {}) model_fallback_values = getattr(opts, 'fallback_values', NONE) model_fallback_undefined = getattr(opts, 'fallback_undefined', NONE) for field_name in opts.local_fields.keys(): field = model._meta.get_field(field_name) field_fallback_value = parse_field(model_fallback_values, field_name, NONE) field_fallback_undefined = parse_field(model_fallback_undefined, field_name, NONE) + field_fallback_language = \ + model_fallback_languages_per_field.get(field_name, model_fallback_languages) descriptor = TranslationFieldDescriptor( field, - fallback_languages=model_fallback_languages, + fallback_languages=field_fallback_language, fallback_value=field_fallback_value, fallback_undefined=field_fallback_undefined) setattr(model, field_name, descriptor) @@ -491,7 +494,7 @@ def _register_single_model(self, model, opts): # We need to use a special descriptor so that # _id fields on translated ForeignKeys work # as expected. - desc = TranslatedRelationIdDescriptor(field_name, model_fallback_languages) + desc = TranslatedRelationIdDescriptor(field_name, field_fallback_language) setattr(model, field.get_attname(), desc) # Set related field names on other model