Проверьте необязательные значения с помощью дуршлаг
Я использую Colander для проверки параметров запроса для веб-сервера Pyramid. Например:
class MySchema(colander.MappingSchema):
first_name = colander.SchemaNode(colander.String())
last_name = colander.SchemaNode(colander.String())
Вот, first_name
а также last_name
обязательные параметры. Если я использую missing=''
тогда это сделало бы их необязательными, но они все равно были бы добавлены к десериализации как пустая строка, которая не очень полезна, если пользователь отправляет пустую строку.
Лучшее, что я могу придумать, это missing=None
а затем проверьте None
потом.
Есть ли способ пометить параметр как действительно необязательный? Это означает, что если они не включены в запрос, они также не должны быть в десериализованном результате.
1 ответ
Я думаю, что вы ищете missing=colander.drop
,
Из документов:
colander.drop - представляет значение, которое будет удалено из схемы, если оно отсутствует во время десериализации. Передается в качестве значения отсутствующего ключевого аргумента SchemaNode.