首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询返回None时如何填写表单

查询返回None时如何填写表单
EN

Stack Overflow用户
提问于 2016-08-12 15:38:49
回答 2查看 75关注 0票数 0

我使用sqlalchemy在我的数据库中查询ip,当结果返回时,一切正常,当没有结果返回时,我怎么能在表单中保持空白。

错误

代码语言:javascript
复制
AttributeError: 'NoneType' object has no attribute 'Ip'

代码

代码语言:javascript
复制
@main.route('/post', methods=['GET', 'POST'])
@login_required
def post():

    caseid=Masterlist.query.filter_by(Ip=request.args.get('Ip')).first()
    form = RepairForm(request.form)
    print request.form
    if request.form.get("submit"):
        repair = Repair(Ip=form.ip.data,Series=form.series.data,Hostname=form.hostname.data,
                ManagerIp=form.managerip.data,Comp=form.comp.data,Discription=form.discription.data,
                Model=form.model.data,Location=form.location.data,Box=form.box.data,
                Important=form.important.data,Faultype=form.faultype.data,Source=form.source.data,
                Subject=form.subject.data,Body=form.body.data,Classify=form.classify.data,
                Status=form.status.data,auth_id=current_user._get_current_object().id,
                Owner=current_user._get_current_object().username,)
        db.session.add(repair)
        db.session.commit()
        flash('报修成功')
        return redirect(url_for('.index'))
    form.ip.data=caseid.Ip
    form.hostname.data=caseid.Hostname
    form.managerip.data=caseid.Managerip
    form.comp.data=caseid.Comp
    form.model.data=caseid.Model
    form.location.data=caseid.Location
    form.box.data=caseid.Box
    form.classify.data=caseid.Classify
    form.series.data=caseid.Series
    form.discription.data=caseid.Discription

    return render_template('post.html',form=form)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-12 15:59:28

您可以对此使用一个简单的if条件。

代码语言:javascript
复制
@main.route('/post', methods=['GET', 'POST'])
@login_required
def post():

    caseid=Masterlist.query.filter_by(Ip=request.args.get('Ip')).first()
    if caseid:
        form = RepairForm(request.form)
        print request.form
        if request.form.get("submit"):
            repair = Repair(Ip=form.ip.data,Series=form.series.data,Hostname=form.hostname.data,
                ManagerIp=form.managerip.data,Comp=form.comp.data,Discription=form.discription.data,
                Model=form.model.data,Location=form.location.data,Box=form.box.data,
                Important=form.important.data,Faultype=form.faultype.data,Source=form.source.data,
                Subject=form.subject.data,Body=form.body.data,Classify=form.classify.data,
                Status=form.status.data,auth_id=current_user._get_current_object().id,
                Owner=current_user._get_current_object().username,)
            db.session.add(repair)
            db.session.commit()
            flash('报修成功')
            return redirect(url_for('.index'))
        form.ip.data=caseid.Ip
        form.hostname.data=caseid.Hostname
        form.managerip.data=caseid.Managerip
        form.comp.data=caseid.Comp
        form.model.data=caseid.Model
        form.location.data=caseid.Location
        form.box.data=caseid.Box
        form.classify.data=caseid.Classify
        form.series.data=caseid.Series
        form.discription.data=caseid.Discription

        return render_template('post.html',form=form)
    else:
        pass
票数 0
EN

Stack Overflow用户

发布于 2016-08-12 16:38:09

解决方案请点击此处

代码语言:javascript
复制
@main.route('/post', methods=['GET', 'POST'])
@login_required
def post():
#   Ip=Ip
#   Ip=Ip
#   print Ip
#   Ip=request.args['Ip']
#   Ip=request.args.get('Ip')

    caseid=Masterlist.query.filter_by(Ip=request.args.get('Ip')).first()
    form = RepairForm(request.form)
    if caseid:

        print request.form
#   print request.form
#   if form.validate_on_submit():
#   if request.method == "POST":
#   if request.form["submit"] == "submitpost":
#   if request.form.get("submit", "submit"):
        if request.form.get("submit"):
            repair = Repair(Ip=form.ip.data,Series=form.series.data,Hostname=form.hostname.data,
                    ManagerIp=form.managerip.data,Comp=form.comp.data,Discription=form.discription.data,
                    Model=form.model.data,Location=form.location.data,Box=form.box.data,
                    Important=form.important.data,Faultype=form.faultype.data,Source=form.source.data,
                    Subject=form.subject.data,Body=form.body.data,Classify=form.classify.data,
                    Status=form.status.data,auth_id=current_user._get_current_object().id,
                    Owner=current_user._get_current_object().username,)
            db.session.add(repair)
            db.session.commit()
            flash('报修成功')
            return redirect(url_for('.index'))
        form.ip.data=caseid.Ip
        form.hostname.data=caseid.Hostname
        form.managerip.data=caseid.Managerip
        form.comp.data=caseid.Comp
        form.model.data=caseid.Model
        form.location.data=caseid.Location
        form.box.data=caseid.Box
        form.classify.data=caseid.Classify
        form.series.data=caseid.Series
        form.discription.data=caseid.Discription

        return render_template('post.html',form=form)
    else:
        if request.form.get("submit"):
            repair = Repair(Ip=form.ip.data,Series=form.series.data,Hostname=form.hostname.data,
                    ManagerIp=form.managerip.data,Comp=form.comp.data,Discription=form.discription.data,
                    Model=form.model.data,Location=form.location.data,Box=form.box.data,
                    Important=form.important.data,Faultype=form.faultype.data,Source=form.source.data,
                    Subject=form.subject.data,Body=form.body.data,Classify=form.classify.data,
                    Status=form.status.data,auth_id=current_user._get_current_object().id,
                    Owner=current_user._get_current_object().username,)
            db.session.add(repair)
            db.session.commit()
            flash('报修成功')
            return redirect(url_for('.index'))
        return render_template('postmanual.html')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38912480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档