4

我正在使用 django-rest-framework,并且我有一个模型“TextElement”,其属性“text”是使用 django-modeltranslation 翻译的。我需要创建一个通用序列化程序,它接受翻译的字段并作为数据返回一个字典,其中语言作为键,翻译后的属性作为值。例子:

text_element = TextElement.objects.get(id=1)
text_element_serializer = TextElementSerializer(text_element)
text_element_serializer.data
>> {"text": {"en": "Something", "es": "Algo"}, "other_attribute": "Something else"}

我可以使用以下序列化程序来做到这一点:

class TextElementSerializer(serializer.ModelSerializer):
    text = serializer.SerializerMethodField()

    class Meta:
        model = TextElement
        fields = ('text', 'other_attribute')

    def get_text(self, instance):
        return {
            'en': instance.text_en,
            'es': instance.text_es
        }

但我想知道是否可以创建一个通用序列化程序,自动检查“字段”中的所有翻译属性,使用 settings.LANGUAGES 中的可用语言并返回相同的数据结构。

提前致谢!

4

0 回答 0