Это работает только в том случае, если другой проект связан с 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 это вопрос добавления другого проекта в качестве сборки развертывания в свойствах основного проекта веб-приложения.
[/g1]
В Eclipse для создания такого проекта с правильной структурой папок, выберите мастер «Веб-фрагмент».
Проще использовать «источник», и вы можете использовать свой пользовательский сериализатор для заполнения полей владельца.
Пример:
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',
)
Используйте 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