diff -r b77683731f25 -r 10b1f6d8a5d2 web/lib/modeltranslation/management/commands/update_translation_fields.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/modeltranslation/management/commands/update_translation_fields.py Thu Jan 21 18:41:10 2010 +0100 @@ -0,0 +1,25 @@ + +from django.conf import settings +from django.core.management.base import BaseCommand, CommandError, NoArgsCommand + +from modeltranslation.translator import translator +from modeltranslation.utils import build_localized_fieldname + +class Command(NoArgsCommand): + help = 'Updates the default translation fields of all or the specified'\ + 'translated application using the value of the original field.' + # args = '[app_name]' + + def handle(self, **options): + default_lang = settings.LANGUAGES[0][0] + print "Using default language:", default_lang + + for model, trans_opts in translator._registry.items(): + print "Updating data of model '%s'" % model + for obj in model.objects.all(): + for fieldname in trans_opts.fields: + def_lang_fieldname = build_localized_fieldname(fieldname, default_lang) + # print "setting %s from %s to %s." % (def_lang_fieldname, fieldname, obj.__dict__[fieldname]) + if not getattr(obj, def_lang_fieldname): + setattr(obj, def_lang_fieldname, obj.__dict__[fieldname]) + obj.save()