这里有几个问题。首先也是最重要的,当我刷新页面时,我没有刷新javascript。通过硬复位(Shift+F5),我能够找出其他一些问题。
其次,当我试图从页面底部而不是顶部的表中追加一行时,我试图使用不必要的ajax请求。这一步只需jQuery就可以完成
$(document).on("click", ".addBtn", function() {
var tr = $(this).closest('tr').clone();
tr.find("input").attr("class", "rmBtn");
tr.find("input").attr("value", "Remove from Family");
$(".familyView").append(tr);
});
第三,我不得不重写
routes.py
@app.route('/create_family', methods = ['GET','POST'])
def create_family():
prefill = {'created_by':current_user.id}
form = CreateFamily(data = prefill)
if (request.method == 'GET') and request.args.get('client_ids'):
ids = request.args.get('client_ids').split(',')
print('ids: {}'.format(ids), file = sys.stderr)
program = request.args.get('program')
if len(ids) != 0:
new_family = Family(program_id = program,
created_date = datetime.utcnow(),
created_by = current_user.id)
db.session.add(new_family)
db.session.flush()
fam_id = new_family.id
for cid in ids:
new_mem = FamilyMember(family_id = fam_id, client_id = cid)
db.session.add(new_mem)
data = {'message': 'Family {} created at {}'.format(fam_id, new_family.created_date), 'code':'SUCCESS'}
db.session.commit()
return make_response(jsonify(data), 201)
elif len(ids) == 0:
print('this is an error', file = sys.stderr)
data = {'message': 'Cannot create a family with no members', 'code':'ERROR'}
return make_response(jsonify(data), 401)
return render_template('create_family.html', form = form, client = client)
我知道这并不是我解决问题的最好解释,但现在我离最初的问题还有几天的时间,我记不清到底是什么给了我最大的麻烦。