Проверьте необязательные значения с помощью дуршлаг

Я использую 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.

Другие вопросы по тегам