WTF窗体:在不添加空白字段的情况下更新用户信息?

2024-09-30 01:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试添加一个更新配置文件信息部分到我的网站。每当我更新信息时,它会在字段留空时删除以前的信息,并用一个None值替换它。当人们更新他们的个人资料时,这显然不是我想要的。你知道吗

这是我的表格:

class EditForm(Form):
    displayname = StringField('displayname', validators=[Optional(),Length(min=3, max=25)], filters = [lambda x: x or None])
    status = StringField('status', validators=[Optional(),Length(min=1, max=64)], filters = [lambda x: x or None])
    gender = StringField('gender', validators=[Optional(),Length(min=3, max=25)], filters = [lambda x: x or None])
    age = IntegerField('age', validators=[Optional(),NumberRange(min=1, max=2)], filters = [lambda x: x or None])
    pref = TextAreaField('pref', validators = [Optional()], filters = [lambda x: x or None])
    about = TextAreaField('pref', validators = [Optional()], filters = [lambda x: x or None])
    img =StringField('Image Url', validators = [Optional(), Length(max = 100)], filters = [lambda x: x or None])

如您所见,我添加了可选的和过滤器。你知道吗

对于页面本身,我有以下内容:

@app.route("/settings" , methods=['GET','POST'])
@login_required
def settings():
    user=g.user
    error=None
    userInfo = UserSettings.query.filter_by(username=user.username).first()
    formo = EditForm(request.form)
    if formo.validate_on_submit():
        userInfo.displayname = formo.displayname.data
        userInfo.status=formo.status.data
        userInfo.gender=formo.gender.data
        userInfo.age=formo.age.data
        userInfo.pref=formo.pref.data
        userInfo.about=formo.about.data
        userInfo.img=formo.img.data
        db.session.commit()
        return redirect(url_for('dash'))
    return render_template("settings.html", error=error, formo=formo, userInfo=userInfo, user=user)

有别的办法吗?你知道吗


Tags: orlambdanonedatalengthoptionalfiltersmax

热门问题