根据翻译区分列表

时间:2013-04-13 19:53:54

标签: python django list multilingual

我有一个多语言字段,我使用了hvad包。 我有一个类似下面的脚本,我用它来进行tastypie脱水。

    array = []
    for t in bundle.obj.facilities.filter(foo_type = i.foo_type):
        for field in get_translatable_fields(t.foo_type.__class__):
            for translation in t.foo_type.translations.all():
                value = getattr(translation, field)
                array.append(value)
                print array

但是我在同一个列表中获得了所有语言翻译。您是否有任何想法让不同的列表属于不同的语言。

我只想在for translation in ....迭代期间使用不同的数组进行区分

1 个答案:

答案 0 :(得分:1)

您可以使用translation <{1}}将其存储在由collections.defaultdict编制索引的字典中:

import collections

dict_all = collections.defaultdict(list)
for t in bundle.obj.facilities.filter(foo_type = i.foo_type):
    for field in get_translatable_fields(t.foo_type.__class__):
        for translation in t.foo_type.translations.all():
            value = getattr(translation, field)
            dict_all[translation.language_code].append(value)

如果您希望之后将其转回常规词典(而不是defaultdict):

dict_all = dict(dict_all.items())