之前不是又一个set_attrs方法来处理表单对模型对么
来源:12-15 完成鱼漂业务逻辑
老卢123123
2018-07-23
def set_attrs(self, attrs_dict): for key, value in attrs_dict.items(): if hasattr(self, key) and key != 'id': setattr(self, key, value)
user.set_attrs(form.data)
为什么在save_drifrt的时候不用呢,而要用populate_obj
或者说,前面user.set_attrs(form.data) 也可以用form.populate_obj(user) ?
写回答
2回答
-
老卢123123
提问者
2018-07-23
@web.route('/register', methods=['GET', 'POST']) def register(): form = RegisterForm(request.form) if request.method == 'POST' and form.validate(): with db.auto_commit(): user = User() user.set_attrs(form.data) db.session.add(user) return redirect(url_for('web.login')) return render_template('auth/register.html', form=form)
上面这个是用set_attrs()
下面这个是用form.popilate_obj()
@web.route('/register2', methods=['GET', 'POST']) def register2(): form = RegisterForm(request.form) if request.method == 'POST' and form.validate(): with db.auto_commit(): user = User() form.populate_obj(user) # user.set_attrs(form.data) db.session.add(user) return redirect(url_for('web.login')) return render_template('auth/register.html', form=form)
不管调试,还是实际用,效果都是一样的···
00 -
7七月
2018-07-23
这两个方法是相反的呀,你好好想想
022018-07-24
相似问题