Создайте макет запроса для фреймворка django rest framework

Я пытаюсь создать макет запроса для метода post в django rest framework и попробовал:

factory = APIRequestFactory()
data = {"hello": 1}
print(data)

django_request = factory.post(url, data, format="json")
print("body:", django_request.body)
print("ct:", django_request.content_type)
r = Request(django_request)
print(r.data)

При печати корректно отображается текст, который должен быть преобразован в (двоичную) строку. Однако конечные r.data представляют собой пустой список. Как мне задать данные?

Предполагается, что у вас есть представление DRF следующим образом

from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(["POST"])
def hello_world(request):
    return Response("Hello World")

что вам следует сделать, так это передать объект запроса в качестве входных данных функции просмотра:

from rest_framework.test import APIRequestFactory
request = factory.post(url, data, format="json")
response = hello_world(request)
print(response.data)
# -> Hello World

Вернуться на верх