не могу зафиксировать() обновленные данные с помощью sqlalchemy не могу найти, что не так

#python #flask #flask-sqlalchemy #flask-wtforms

Вопрос:

привет, моя sqlalchemy просто не будет совершать, я почти уверен, что мой код верен, но я понятия не имею, почему он не будет совершать

 class Movie(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), unique=True, nullable=False) year = db.Column(db.String(80), nullable=False) description = db.Column(db.String(180), nullable=False) rating = db.Column(db.String(80), nullable=False) ranking = db.Column(db.String(80), nullable=False) review = db.Column(db.String(256), nullable=False) img_url = db.Column(db.String(1000), nullable=False)  def __repr__(self):  return f"id: {self.id} title: {self.title} year: {self.year} description:   {self.description} rating: {self.rating} "   f"ranking {self.ranking} review: {self.review} img_url: {self.img_url}"    @app.route('/edit', methods=['GET','POST']) def edit_movie(): movie_id = request.args.get('id') form = Edit_Form() print(movie_id)  if request.method == 'POST':  movie_update = Movie.query.filter_by(id=movie_id).first()  movie_update.rating = form.rating.data  movie_update.review = form.review.data  db.session.commit()  return redirect(url_for('home'))  return render_template('edit.html', form=form)  

это мой html-код

 lt;form action="{{ url_for('edit_movie') }}" method="POST"gt; {{ form.csrf_token }} lt;pgt;please put in your new ratinglt;/pgt; {{ form.rating }} lt;pgt;please write your review lt;/pgt; {{ form.review }} {{ form.submit }} lt;/formgt;  

похоже, что он не вносит никаких изменений в данные sql

Ошибка атрибута: объект «Нетип» не имеет атрибута «рейтинг».

Комментарии:

1. Вы заставляете нас догадываться, в чем ошибка. Пожалуйста, обновите вопрос, чтобы включить всю обратную трассировку сообщения об ошибке.

Ответ №1:

 movie_update = Movie.query.filter_by(id=movie_id).first()  

не находит фильм и не возвращает его.

Ответ №2:

Объект «movie.update», который, по вашему мнению, вы создаете, не был создан, в результате чего не только оценка не будет выполнена как метод, но и я также проверяю. Так что, когда это не удастся, ничего не произойдет

Комментарии:

1. но я этого не понимаю, я получаю данные из него, например, если я наберу print(movie_update.rating), я увижу только рейтинг, поэтому я не пойму, где он не создает объект