Когда нажата кнопка «галочка», я бы хотел, чтобы статус сообщения отмечался как «завершенный».

Я попробовал простой post.status = «завершено», а также некоторые sqlalchemy
rout.py:
@app.route("/post/<int:post_id>/markcomplete", methods=['POST'])
def mark_complete(post_id):
post = Post.query.get_or_404(post_id)
# post.status = "completed"
db.session.query(post).filter(post.id == post_id).update({post.status:"completed"})
db.session.commit()
return redirect(url_for('home'))
Другие маршруты приложений, такие как редактирование поста и удаление поста, работают нормально. Сообщение редактирования выполняется в wtforms, где статусом является SelectField - «текущий» или «завершен». Маршрут удаления работает без проблем:
@app.route("/post/<int:post_id>/delete", methods=['POST'])
def delete_post(post_id):
post = Post.query.get_or_404(post_id)
db.session.delete(post)
db.session.commit()
flash('Your post has been deleted', 'danger')
return redirect(url_for('home'))
models.py
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
description = db.Column(db.Text, nullable=False)
status = db.Column(db.String(100), nullable=False)
priority = db.Column(db.String(100), nullable=False)
assigned_to = db.Column(db.String(100), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
reported_by = db.Column(db.String(100), nullable=False)
def __repr__(self):
return f"Post('{self.title}', '{self.date_posted}')"
home. html
{% block content %}
<div class="Blocks">
<div id="First">
<p align="right">
<a class="btn btn-primary" class="nav-item nav-link" href="{{ url_for('all') }}" role="button">Show All</a>
<a class="btn btn-primary" class="nav-item nav-link" href="{{ url_for('new_post') }}" role="button">New Post</a>
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button"
aria-expanded="false" aria-controls="collapseExample">Quick Expand</a>
</p>
<table style="leftside" align="center">
<tr style="border-bottom:1pt solid black;">
<th>Title</th>
<!--<th>Status</th>-->
<th>Priority</th>
<th>Datetime</th>
<th>Assigned To</th>
<th>Reported By</th>
<th>Edit</th>
<th></th>
<th></th>
</tr>
{% for post in posts %}
{% if 'ongoing' in post.status %}
<tr>
<td><a class="article-title" href="{{ url_for('post', post_id=post.id) }}">{{ post.title }}</a></td>
<!--<td>{# {{ post.status }} #}</td>-->
<td>{{ post.priority }}</td>
<td><strong><small>{{ post.date_posted }}</small></strong></td>
<td><small>{{ post.assigned_to }}</small></td>
<td><small>{{ post.reported_by }}</small></td>
<td><a class="btn btn-primary" class="article-title" href="{{ url_for('update_post', post_id=post.id) }}">Edit</a></td>
<td><a class="btn btn-primary" class="article-title" href="{{ url_for('mark_complete', post_id=post.id) }}">✓</a></td>
{% endif %}
<td colspan="5">
<div class="collapse" id="collapseExample"><div class="card card-body">{{ post.description }}</div></div>
</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock content %}
Ошибка: метод не разрешен Метод не разрешен для запрошенного URL.