#django #django-models #django-rest-framework #django-views #django-serializer
#django #django-модели #django-rest-framework #django-просмотры #django-сериализатор
Вопрос:
Как вы форматируете данные, возвращаемые из Generics.Класс ListAPIView перед отправкой его во внешний интерфейс? Я хочу добавить метаданные к возвращаемому значению, но я не могу добавить какие-либо метаданные, которые еще не являются частью модели. Например:
class someList(generics.ListAPIView):
serializer_class = someSerializer
def get_queryset(self):
return someQueryset()
class someListSerializer(SurveySerializer):
class Meta:
model = someListModel
fields = ['modelField']
class someListModel(Base):
modelField=models.TextField(default="", blank=True)
Это приведет к
[{Поле модели: информация},{Поле модели: информация},{Поле модели: информация}]
Что, если я хочу [ {Поле модели: информация, информация, вычисленная из набора запросов: но не часть модели}, {Поле модели:информация, информация, вычисленная из набора запросов:но не часть модели},{Поле модели: информация, информация, вычисленная из набора запросов:но не часть модели} ]
informationCalculatedFromQueryset не является частью someListModel, поэтому я не могу просто добавить его в поля. Как мне вручную добавить эту информацию во внешний интерфейс? Возможно ли это?
Ответ №1:
Для этого вы можете использовать SerializerMethodField в этом, вы можете сделать так:
class SurveySerializer(serializers.Serializer):
otherField = serializers.SerailzerMethodField()
get_otherField(self, obj):
return "I am other field"
class Meta:
model = Survey
fields = "__all__"