Как проверить, пустые ли данные запроса в 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()
^ Предполагая, что это ваши поля, вы можете изменить их на поля вашей модели.