1

我有一个使用 hvad 包的多语言领域。我有一个像下面这样的脚本,我用它来做美味的脱水。

    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 ....迭代过程中有不同的数组

4

1 回答 1

1

translation您可以使用 a将它们存储在由 索引的字典中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)

如果您想在之后将其转回常规字典(而不是 a defaultdict):

dict_all = dict(dict_all.items())
于 2013-04-13T20:27:01.887 回答