#python #django #django-rest-framework
Вопрос:
У меня есть ModelViewSet
, из которых я переопределил create
функцию, как показано ниже —
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
def create(self, request, *args, *kwargs):
req_data = json.loads(request.body)
x = req_data.get('x')
response = super().create(request, *args, **kwargs)
book_id = response.data['id']
do_foo(book_id, n=x)
return response
Теперь в другой функции я пытаюсь вызвать эту ViewSet
create
функцию.
@api_view(['POST',])
def bar(request, *args, **kwargs):
req_data = request.data
rf = RequestFactory()
payload = {'name': "Book1", 'author': "Helen"}
mock_req = rf.post('/book', json.dumps(payload), content_type='application/json')
vs = BookViewSet()
return vs.create(mock_req)
Это приводит меня к ошибке —
AttributeError: 'WSGIRequest' object has not attribute 'data'
на этой линии — response = super().create(request, *args, **kwargs)