Сериализация поля связанной модели в модели DRF

Это работает только в том случае, если другой проект связан с JAR-файлом в папке /WEB-INF/lib основного проекта webapp и если файл JSP по очереди помещен в папку /META-INF/resources другого проекта.

Итак, если у вас есть /META-INF/resources/common/webappfooter.jsp в другом проекте, то следующие включенные должны делать:

<jsp:include path="/common/webappfooter.jsp" />

Если вы используете немного самоуверенный IDE, вы можете настроить он автоматически связывает другой проект как JAR проекта webapp /WEB-INF/lib. Непонятно, какую IDE вы используете, но в Eclipse это вопрос добавления другого проекта в качестве сборки развертывания в свойствах основного проекта веб-приложения.

alt text [/g1]

В Eclipse для создания такого проекта с правильной структурой папок, выберите мастер «Веб-фрагмент».

-1
задан Nabat Farsi 5 March 2019 в 07:14
поделиться

2 ответа

Проще использовать «источник», и вы можете использовать свой пользовательский сериализатор для заполнения полей владельца.

Пример:

class ImageSerializer(serializers.HyperlinkedModelSerializer):
    prop_post = serializers.SlugRelatedField(queryset=PropertyPost.objects.all(),
                                             slug_field='pk')

    owner = UserSerializer(source="prop_post.owner")   

    class Meta:
        model = Image
        fields = (
            'url',
            'photo',
            'prop_post',
            'owner',
        )
0
ответ дан Enthusiast Martin 5 March 2019 в 07:14
поделиться

Используйте SerializerMethodField(), чтобы выполнить задачу. Так как вы не опубликовали свои модели и как это связано. Я дал вам нормальное представление о том, как этого добиться. Будет лучше, если вы сможете добавить модели. Я смогу обновить ответ соответственно.

from rest_framework.serializers import SerializerMethodField

class ImageSerializer(serializers.HyperlinkedModelSerializer):
    prop_post = serializers.SlugRelatedField(queryset=PropertyPost.objects.all(),
                                         slug_field='pk')
    prop_post_title = SerializerMethodField()

    class Meta:
        model = Image
        fields = [
            'url',
            'photo',
            'prop_post',
            'prop_post_title',
        ]

    def get_prop_post_title(self, obj):
        try:

            return obj.prop_post.title
        except:
            return None
0
ответ дан Pritam Roy 5 March 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: