У меня есть регистрационная форма, которая собирает информацию о кредитной карте. Рабочий процесс выглядит следующим образом:wtforms повысить достоверность проверки после того, как форма подтверждена
- Пользователь вводит регистрационные данные и данные карты через полосу.
- Форма подтверждена для регистрационных данных.
- Если форма действительна, оплата будет обработана.
- Если оплата проходит, все в порядке, пользователь зарегистрирован и движется дальше.
- Если платеж не удался, я хочу иметь возможность поднять ошибку проверки в скрытом поле формы. Это возможно?
Вот код представления формы:
def register():
form = RegistrationForm()
if form.validate_on_submit():
user = User(
[...]
)
db.session.add(user)
#Charge
amount = 10000
customer = stripe.Customer.create(
email=job.company_email,
card=request.form['stripeToken']
)
try:
charge = stripe.Charge.create(
customer=customer.id,
amount=amount,
currency='usd',
description='Registration payment'
)
except StripeError as e:
***I want to raise a form validation error here if possible.***
db.session.commit()
return redirect(url_for('home'))
return render_template('register.html', form=form)
решение работает для меня StripeError, но я также геокодирования с помощью Google а затем попытаться поднять ошибку, используя метод form.field.errors.append (''), но ошибка не появится. –
Проблема заключалась в том, что добавление ошибок не останавливает выполнение остальной части кода (в конце я имел перенаправление). Я добавил дополнительный код, чтобы проверить, были ли у формы все еще ошибки перед перенаправлением. –