我有一个多语言字段,我使用了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 ....
迭代期间使用不同的数组进行区分
答案 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())