Я использую ModelViewSet для создания объектов из параметров, полученных в запросе POST.Сериализатор выглядит следующим образом:
class FooSerializer(ModelSerializer):
class Meta:
model = Foo
fields = '__all__'
Я хочу перехватить запрос и выполнить его проверку (по методу модели, если это имеет значение), прежде чем разрешить продолжить создание.В ванильных формах django я переопределяю метод form_valid, выполняю проверку и затем вызываю super (). Form_valid (...).Я пытаюсь сделать то же самое здесь:
class BookingView(ModelViewSet):
queryset = DirectBooking.objects.all()
serializer_class = DirectBookingSerializer
def create(self, request):
print(request.data)
#Perform check here
super().create(request)
Это работает, в том смысле, что он создает объект в БД, но трассировка показывает ошибку:
AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
Этокажется странным, так как я ожидаю, что super (). save вернет соответствующий ответ.
Я знаю, что мне придется возвращать ответ сам, если проверка не удалась (вероятно, 400), но я бывсе еще хотел бы понять, почему это терпит неудачу здесь.