У меня есть регистрационная форма:изменить запрос до проверки
class AddUserForm(Form):
email = StringField(_('Email'), [validators.DataRequired()])
password = PasswordField('Password', [validators.DataRequired()])
forename = StringField('Forename', [validators.DataRequired()])
surname = StringField('Surname', [validators.DataRequired()])
address = TextAreaField('Address', [validators.DataRequired()])
join_date = DateField('Join Date', [validators.DataRequired()])
и посмотреть, как это:
@app.route('user/add/', methods=['GET', 'POST'])
def add():
# here I need to modify request.form
form = AddUserForm(request.form)
if request.method == 'POST' and form.validate():
user = User(email=request.form['email'])
form.populate_obj(user)
user.set_password(request.form['password'])
db.session.add(user)
db.session.commit()
return jsonify({'message': 'thanks for registration',
'status': 'success'})
return render_template('user/form.html', form=form)
и проблема, когда я пытаюсь проверить эту форму.
form.validate() возвращает значение false с запросом.form ['join_date'], поэтому мне нужно сначала преобразовать поле даты в gregorian.
Я думал, что если бы я мог каким-либо образом изменить request.form, прежде чем передать его в addUserForm(), то мой form.validate() не вернет false.
но я не мог, так как это ImmutableMultiDict. Я хочу знать, возможно ли сделать копию request.form, которая не является неизменяемой или каким-либо другим способом изменить запрос до проверки.