Skip to content

Commit e8c2239

Browse files
committed
add fallback_languages_per_field to TranslationOptions
1 parent 686e020 commit e8c2239

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

modeltranslation/translator.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,23 +475,26 @@ def _register_single_model(self, model, opts):
475475

476476
# Substitute original field with descriptor
477477
model_fallback_languages = getattr(opts, 'fallback_languages', None)
478+
model_fallback_languages_per_field = getattr(opts, 'fallback_languages_per_field', {})
478479
model_fallback_values = getattr(opts, 'fallback_values', NONE)
479480
model_fallback_undefined = getattr(opts, 'fallback_undefined', NONE)
480481
for field_name in opts.local_fields.keys():
481482
field = model._meta.get_field(field_name)
482483
field_fallback_value = parse_field(model_fallback_values, field_name, NONE)
483484
field_fallback_undefined = parse_field(model_fallback_undefined, field_name, NONE)
485+
field_fallback_language = \
486+
model_fallback_languages_per_field.get(field_name, model_fallback_languages)
484487
descriptor = TranslationFieldDescriptor(
485488
field,
486-
fallback_languages=model_fallback_languages,
489+
fallback_languages=field_fallback_language,
487490
fallback_value=field_fallback_value,
488491
fallback_undefined=field_fallback_undefined)
489492
setattr(model, field_name, descriptor)
490493
if isinstance(field, ForeignKey):
491494
# We need to use a special descriptor so that
492495
# _id fields on translated ForeignKeys work
493496
# as expected.
494-
desc = TranslatedRelationIdDescriptor(field_name, model_fallback_languages)
497+
desc = TranslatedRelationIdDescriptor(field_name, field_fallback_language)
495498
setattr(model, field.get_attname(), desc)
496499

497500
# Set related field names on other model

0 commit comments

Comments
 (0)