def item_new(): if request.method == 'POST': # store form data try: item = vh.item_from_form(Item(), request.form, user_id=g.user.id) except ValueError as e: # client-side validation should prevent this current_app.logger.exception(e) return render_template('err.html', err_msg="Database validation error") except SQLAlchemyError as e: current_app.logger.exception(e) # todo: reinitialize db connection if necessary return render_template('err.html', err_msg="Database error") # store image file file_storage_err = vh.store_item_pic( item, request.files['picture']) if file_storage_err is not None: # todo: what if item delete after failed pic storage fails? # using wtfform in item_add.html would simplify all this get_db().delete(item) return render_template( 'err.html', err_msg=file_storage_err), 500 return redirect(url_for('.home')) else: categories = get_db().query(Category).all() return render_template('item_add.html', categories=categories)
def item_new(): if request.method == 'POST': # store form data try: item = vh.item_from_form(Item(), request.form, user_id=login_session.get('user_id')) except ValueError as e: return "Database validation error: " + str(e) except SQLAlchemyError as e: # todo: log error, but don't display detailed message # for security reasons return "Database error: " + str(e) # store image file file_storage_err = vh.store_item_pic(item, request.files['picture']) if file_storage_err is not None: return file_storage_err return redirect(url_for('home')) else: categories = session.query(Category).all() return render_template('item_add.html', categories=categories)
def item_new(): if request.method == 'POST': # store form data try: item = vh.item_from_form( Item(), request.form, user_id=login_session.get('user_id')) except ValueError as e: return "Database validation error: " + str(e) except SQLAlchemyError as e: # todo: log error, but don't display detailed message # for security reasons return "Database error: " + str(e) # store image file file_storage_err = vh.store_item_pic( item, request.files['picture']) if file_storage_err is not None: return file_storage_err return redirect(url_for('home')) else: categories = session.query(Category).all() return render_template('item_add.html', categories=categories)