Как создать собственный сериализатор для django модели каркаса отдыха с переводами - PullRequest
1 голос
/ 05 марта 2020

Я использую django -rest-framework и у меня есть модель "TextElement" с атрибутом "text", переведенным с помощью django -modeltranslation. Мне нужно создать обобщенный c сериализатор, который принимает переведенные поля и возвращает в качестве данных словарь с языком в качестве ключа и переведенным атрибутом в качестве значения. Пример:

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
        }

Но я хотел бы знать, возможно ли создать сериализатор generei c, который автоматически проверяет все переведенные атрибуты в «поля», используя доступные в настройках языки. LANGUAGES и возвращая ту же структуру данных.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...