def update_address(): """ Update the user's address""" session = connect() try: user = load_user(current_user.id) address = get_address(user.address_id) except AttributeError: return 'Error getting user data' if address is None: address = Address() if request.method == 'POST': if request.form['street_1']: address.street_1 = request.form['street_1'] if request.form['street_2']: address.street_2 = request.form['street_2'] if request.form['city']: address.city = request.form['city'] if request.form['state']: address.state = request.form['state'] if request.form['zip_code']: address.zip_code = request.form['zip_code'] address_string = get_address_string(address) if validate_address(address_string) is False: flash("Address is invalid or outside delivery radius!") return redirect(url_for('cart_edit_address')) address = session.add(address) user.address_id = get_address_id(address) user = session.merge(user) flash("Address saved!") session.commit() return redirect(url_for('show_cart'))