Django rest framework POST ошибка. Когда я отправляю JSON/словарь внутри Json, он возвращает: "Not a valid string".
Я пытаюсь заставить работать этот тестовый API, он очень простой и модель состоит только из одного класса с 2 полями. Мой набор представлений наследуется от ModelViewset и я добавил (чтобы сделать его более явным, и внести некоторые изменения в будущем) список и функцию create. Я могу отправить несколько JSON с успехом, но когда я пытаюсь отправить этот JSON, который имеет "вложенный json", он возвращает
"Not a valid string."
Вот код и JSON:
views.py:
class SessionViewset(viewsets.ModelViewSet):
""""
A simple viewset for listing or retrieving 'sessions'
"""
queryset = Session.objects.all()
serializer_class = SessionSerializer
def list(self, request):
queryset = Session.objects.all()
serializer = SessionSerializer(queryset, many=True)
return Response(serializer.data)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
JSON:
{
"meta":"aca va la metadata",
"reunion":{"juan":500,
"pedro":300,
"jose":1000}
}
и возвращает:
{
"reunion": [
"Not a valid string."
]
}
Знаете ли вы, есть ли какое-то ограничение, о котором я не знаю, или как я могу решить эту проблему? Спасибо
Попытался отправить этот JSON в конечную точку API с ответом об ошибке
@MS25, как я упоминал в комментарии, ваша модель имеет воссоединение как CharField
и вы посылаете ей объектный тип данных
Если вы все еще хотите отправлять те же данные на воссоединение, то попробуйте что-то вроде:
{
"meta":"aca va la metadata",
"reunion":JSON.stringify({"juan":500,
"pedro":300,
"jose":1000})
}
Я не уверен в результатах, возможно, это сработает, возможно, нет.