web/lib/modeltranslation/management/commands/update_translation_fields.py
changeset 5 10b1f6d8a5d2
--- /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()