# -*- coding: utf-8 -*- from django.conf import settings from functions.translate import get_translated_fields def fill_missing_languages(obj): """ looking for missing languages and fill translated fields with first available language uses in post_save signal """ # what languages must be all_langs = [code for code, lang in settings.LANGUAGES] # what languages are obj_langs = obj.get_available_languages() missing_languages = list(set(all_langs) - set(obj_langs)) # get first Translation object translation = obj.translations.all()[0] fields = get_translated_fields(obj) for code in missing_languages: # translate obj.translate(code) # go through all fields and set value for field in fields: setattr(obj, field, getattr(translation, field)) obj.save()