Как сделать POST-запрос с данными вложенной формы на POSTMAN?
Я тестирую POST запрос, в котором мне нужно, чтобы структура тела была примерно такой.
{
"new_status":"",
"insertions":[
{"seq":"1", "type":"heading", "value":"My sub heading 1" },
{"seq":"2", "type":"datetime", "value":"1-12-2022" },
{"seq":"3", "type":"pdf", "value":"A PDF FILE attached here " }
] }
Django backend
Редактирование 1: Добавление исходного кода
Мой исходный код представления на основе классов для этой конечной точки
class ListCreateContent(ListCreateAPIView):
allowed_methods=['get','post',]
permission_classes = [PostAboveLevelTwo]
serializer_class = ContentSerializer
def create(self, request, *args, **kwargs):
data_from_post = request.data
print("POST DATA RCVD IS ",data_from_post)
data = {
"content_title":data_from_post['content_title'],
"content":data_from_post['content'],
"primary_attachment_pdf":data_from_post['primary_attachment_pdf'],
"primary_attachment_label":data_from_post['primary_attachment_label'],
"prebid_datetime":data_from_post['prebid_datetime'],
}
publish_in_news = data_from_post['publish_news']
context=self.get_serializer_context()
context["publish_in_news"] = publish_in_news
context["insertions"] = data_from_post['insertions']
serializer = self.get_serializer(data=data,context=context)
try:
serializer.is_valid(raise_exception=True)
except Exception:
print("Errors ins serializers",serializer.errors)
raise
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def perform_create(self, serializer):
print("perform_create... TESTING SERIALIZER....",serializer)
publish_in_news =serializer.context['publish_in_news']
print("INSERTIONS CHECK",serializer.context['insertions'])
instance = serializer.save()
if publish_in_news is not None :
print("YES/NO is now here ....")
if publish_in_news == "yes":
pass
# publishInNews(instance,"type_impinfo")
else:
raise
На стороне сервера я получаю данные из POST следующим образом
'insertions[0]pdf': [<InMemoryUploadedFile: IN-APR-01.pdf (application/pdf)>]}>
Internal Server Error: /api/content
В последний объект я хочу вставить PDF-файл
.
Эти данные доходят до сервера, но не в том виде, который мне нужен. Как я могу отправить вложенный массив объектов через postman ?
