def new_movie(payload): """ Add a Movie here :param payload: :return: """ form = request.get_json(force=True) if Movies.query.filter_by(title=form['title']).first() is not None: abort(500, "Movie '{}' already exists...".format(form['title'])) try: new_movie = Movies(title=form['title'], release_date=form['release_date'], rating=form['rating']) categories = [ Category.query.filter_by(name=category).first() for category in form['categories'] ] actors = [ Actors.query.filter_by(name=actor).first() for actor in form['actors'] ] new_movie.categories = categories new_movie.actors = actors # As I am not sure how to use 'uselist', this will suffice: # for category in categories: # new_movie.categories.append(category) # for actor in actors: # new_movie.actors.append(actor) new_movie.insert() except Exception as e: abort(500, e) return jsonify({'movie': [new_movie.format()]})