Я только начал использовать Pyramid для одного из моих проектов, и мне нужно для проверки ввода в поле формы, взяв это значение поля формы и выполнив вызов веб-службы, чтобы подтвердить правильность значения. Например, есть поле под названием CUSTOMER-ID вашего банка. Мне нужно взять это (отдельно) в качестве входных данных и проверить на уровне сервера, выполнив вызов веб-службы (например, http://someotherdomain/validate_customer_id/?customer_id=<input_value>
), скажем.
Я использую Colander для управления схемой форм и Deform для всей логики проверки формы. Я не понимаю, где мне нужно разместить мою логику проверки для случая CUSTOMER-ID. Это в MySchema().bind(customer_id=<input_value>)
(у которого есть отложенный валидатор, который запрашивает веб-службу) или что-то в form.validate(request.POST.items())? Если я выберу путь отложенного валидатора, то MySchema().bind
вызовет colander.Invalid
ошибку из-за неправильного CUSTOMER-ID. Это нормально. Но эта ошибка не на уровне формы, а на уровне схемы. Так как же мне разумно сообщить об этом пользователю?
У меня хороший опыт работы с формами Django, поэтому я ожидал чего-то вроде метода clean
. Ошибка формы, такая как form['customer_id'].error - это то, что я ожидаю на уровне шаблона. Возможно ли это с деформацией пирамиды или с дуршлагом?