-2
我必须有条件删除数据库条目,我无法弄清楚,因为表单要求在uri中发布正确的参数。我可以用相同的代码删除shell中的条目,但不能查看。以下是视图和表单:Flask + SqlAlchemy删除数据库条目
@app.route('/cancelannualsub/<int:student_id>', methods=['DELETE'])
def cancel_yearly_rec(student_id):
if not user_authorized():
return redirect('/')
user = get_profile_data(session['auth_token'])
profile_data = user['StudentProfile']
pkg = Package.query.filter_by(student_id=profile_data.id).first_or_404()
if request.method=='POST':
try:
pkg = Package()
dbase.session.delete(pkg)
flash('Package deleted successfully.')
dbase.session.commit()
except:
pass
return redirect('plans')
return render_template('profile/cancel/cancel.html')
形式:
<form action="{{ url_for('cancel_yearly_rec', student_id=***can't render value here***) }}" method='post'>
<input type='hidden' name='_method' value='DELETE'
<input class='btn' type="submit" value="Cancel" />
</form>
我从计算器例子尝试不同的东西。如果我做错了什么或者是否有更好的方法,请协助。
这里有一个错字'pkg = Pacakge()','pacakge' - >'package' – Arman
原始代码中没有错误...我检查了。现在,我在什么地方添加student_id =“在这里添加什么”。 –
“无法在这里呈现价值”是什么意思?你可能在模板中有学生对象,所以把它放在那里:'student_id = student.id'。见[mcve]。 – davidism