Suds выдает исключение на "тип не найден"
Мы используем SUDS версии 1.1.1 и недавно начали получать исключение "Тип не найден", поскольку ответ на запрос содержит поле, отсутствующее в wsdl. Я попытался инициализировать клиент с помощью ключевого слова strict следующим образом, но исключение по-прежнему возникает:
client = Client(spec_path, strict=False, faults=False)
Есть ли какой-нибудь другой способ заставить suds игнорировать неизвестное поле, не создавая исключения, пожалуйста?
Не могли бы вы предоставить более подробную информацию (код) о вашей проблеме? Мне также было интересно, пробовали ли вы использовать пользовательский плагин, чтобы обойти проблему, что-то вроде:
class IgnoreUnknownFieldsPlugin(MessagePlugin):
def unmarshalled(self, context):
# Remove unknown elements before SUDS processes them
if hasattr(context.reply, 'children'):
known_elements = [el for el in context.reply.children if el.name in context.reply.__metadata__.sxtype.rawchildren]
context.reply.children = known_elements
client = Client(spec_path, plugins=[IgnoreUnknownFieldsPlugin()], faults=False)