|
5
|
1 |
|
|
|
2 |
from django.conf import settings |
|
|
3 |
from django.core.management.base import BaseCommand, CommandError, NoArgsCommand |
|
|
4 |
|
|
|
5 |
from modeltranslation.translator import translator |
|
|
6 |
from modeltranslation.utils import build_localized_fieldname |
|
|
7 |
|
|
|
8 |
class Command(NoArgsCommand): |
|
|
9 |
help = 'Updates the default translation fields of all or the specified'\ |
|
|
10 |
'translated application using the value of the original field.' |
|
|
11 |
# args = '[app_name]' |
|
|
12 |
|
|
|
13 |
def handle(self, **options): |
|
|
14 |
default_lang = settings.LANGUAGES[0][0] |
|
|
15 |
print "Using default language:", default_lang |
|
|
16 |
|
|
|
17 |
for model, trans_opts in translator._registry.items(): |
|
|
18 |
print "Updating data of model '%s'" % model |
|
|
19 |
for obj in model.objects.all(): |
|
|
20 |
for fieldname in trans_opts.fields: |
|
|
21 |
def_lang_fieldname = build_localized_fieldname(fieldname, default_lang) |
|
|
22 |
# print "setting %s from %s to %s." % (def_lang_fieldname, fieldname, obj.__dict__[fieldname]) |
|
|
23 |
if not getattr(obj, def_lang_fieldname): |
|
|
24 |
setattr(obj, def_lang_fieldname, obj.__dict__[fieldname]) |
|
|
25 |
obj.save() |