4

私はdjango-rest-frameworkを使用しており、django-modeltranslationを使用して翻訳された属性「テキスト」を持つモデル「TextElement」を持っています。翻訳されたフィールドを受け取り、言語をキーとして、翻訳された属性を値として持つディクショナリをデータとして返す汎用シリアライザーを作成する必要があります。例:

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