Функция редактирования приложения Flask не работает? (Структура БД)Python

Программы на Python
Ответить
Anonymous
 Функция редактирования приложения Flask не работает? (Структура БД)

Сообщение Anonymous »

Я создаю приложение Flask To Do (в качестве учебного проекта), и на основе приведенного ниже кода я получаю ошибку 400.
Определения базы данных списка дел

Код: Выделить всё

class AllToDoLists(db.Model):
__tablename__ = 'all_to_do_lists'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
tasks = db.relationship('TaskList', backref='alltodolist', lazy=True)

class TaskList(db.Model):
id= db.Column(db.Integer, primary_key=True)
description = db.Column(db.String(200), nullable=False)
status = db.Column(db.String(50), default="open")
list_name = db.Column(db.Integer, db.ForeignKey('all_to_do_lists.id'))

Пример базы данных
скриншот из базы данных
Функция редактирования списка дел

Код: Выделить всё

@app.route('/tick/edit/', methods=["GET", "POST"])
def tick_edit(n):
task = TaskList.query.get(n)
lists = AllToDoLists.query.all()
currentlist = AllToDoLists.query.get(task.list_name)
if request.method == "POST":
task.description = request.form['task']
task.list = request.form['list']
db.session.commit()
return render_template("tick_edit.html", task=task, lists = lists, currentlist=currentlist )
Форма редактирования списка дел

Код: Выделить всё


{{task.description}}

{%for list_item in lists%}
{% if list_item == currentlist%}
 {{list_item.name}}
{% else %}
 {{list_item.name}}
{% endif %}
{% endfor %}   



Я попробовал, если request.method == "POST": и страница загрузилась правильно, но, конечно, не сохранила изменения в базе данных (где я узнал POST =/= post)< /p>
Я попытался закомментировать обновление списка (я понимаю, что мне нужно поработать над этим, поскольку List_Name является целым числом, но моя форма выбирает из фактической строки имени) и сохранить только описание, и оно то же самое проблема.
Мне почему-то кажется, что это что-то совершенно очевидное, но я посмотрел на это по сравнению с идентичными «функциями» в «приложении», которые работают нормально, и безуспешно запросил ChatGPT.
Ожидается, что страница представить текущее описание задачи в редактируемом поле (это работает, когда страница загружается), список (который по умолчанию соответствует текущему списку), чтобы его можно было изменить. Когда я нажимаю кнопку «Отправить», соответствующие поля базы данных обновляются.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -structure
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»