Как проверить, пустые ли данные запроса в Django rest framework?

Я пытаюсь написать APIView, используя django-rest-framework. В методе post я хочу проверить, содержат ли данные запроса что-либо, потому что я часто получаю KeyError. Я могу добиться этого, используя следующий код:

        if request.data is not None and request.data != {}:
            username = request.data["username"]

Есть ли лучший способ написать приведенный выше код? Особенно request.data != {}

Первое предложение в DRF - использовать сериализатор, который будет проверять поля. Посмотрите здесь https://www.django-rest-framework.org/api-guide/serializers/

Поскольку пустые словари оцениваются как False, для проверки данных можно просто использовать оператор if not.

Проще было бы подойти к вашему коду

if not request.data:
   username = request.data["username"]

Вы можете узнать больше здесь


В качестве альтернативы можно использовать сериализатор для проверки полей. Вот пример того, как это можно реализовать:

class CommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()

^ Предполагая, что это ваши поля, вы можете изменить их на поля вашей модели.

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