Я не могу удалить строку из базы данных, когда я подтверждаю, что браузер не отвечает, ниже есть часть кода
Вот мой код:
@app.route("/task/delete/<int:task_id>", methods=['POST', 'GET'])
def DeleteTask(task_id):
qry = db.session.query(Task).filter(Task.task_id == task_id)
tsk = qry.first()
if tsk:
formpage = TaskForm(formdata=request.form, obj=tsk)
print tsk
if formpage.validate_on_submit():
db.session.delete(tsk)
db.session.commit()
return redirect('/task')
return render_template('my_html.html', formpage=formpage)
my_db. py
Employee_Task = db.Table('employee_task',
db.Column('employee_id', db.Integer, db.ForeignKey('employee.employee_id')),
db.Column('task_id', db.Integer, db.ForeignKey('task.task_id'))
)
class Employee(db.Model):
__tablename__ = 'employee'
employee_id = db.Column(db.Integer, primary_key=True)
employee_name = db.Column(db.String(100), nullable=True)
class Task(db.Model):
__tablename__ = 'task'
task_id = db.Column(db.Integer, primary_key=True)
task_no = StringField('Task ID.:', validators=[DataRequired(), Length(min=2, max=10)])
rel_task_employee = db.relationship("Employee", secondary=Employee_Task, backref="rel_employee_task")
my_form.py
class TaskForm(FlaskForm):
task_no = StringField('Task ID.:', validators=[DataRequired(), Length(min=2, max=10)])
task_name = StringField('Task Name:', validators=[DataRequired(), Length(min=2, max=50)])
submit = SubmitField('OK!')
my_ html. html
<form method=post>
<dl>
{{ formpage.task_no }}
{{ formpage.task_name }}
</dl>
<p><input type=submit value=Delete>
</form>
print tsk
показывает правильные данные
Однако, когда я submit
браузер не отвечает.
Где ошибка?
ОБНОВЛЕНИЕ
Я проверяю ошибку проверки с помощью
{% for error in formpage.errors %}
<div>
<p>ALERT!</p>
{{ error }} INVALID
</div>
{% endfor %}
и получаю следующее сообщение
Alert! Task_no недействителен
Оповещение! csrf_token неверен
Странно,
- Относительно
csrf_token invalid
, я решаю, добавив {{ formpage.csrf_token }}
в html - Относительно
task_no invalid
, Форма работает очень хорошо во время отправки данных в базу данных, я использую ту же форму для удаления этих данных.
Есть идеи для решения пункта 2?