Flask提交时不传递数据。AttributeError:“NoneType”对象没有属性“id”

2024-05-13 21:20:12 发布

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

我是Python和Flask框架的新手,我不知道如何将数据传递到表单。我一直在获取AttributeError:“NoneType”对象在提交表单时没有属性“id”。在

我能够将对象(invoice1)从视图传递到模板并显示对象属性。(发票.id)但我不能将对象传递给窗体。在

@app.route('/invoice/add', methods=['GET', 'POST'])
@login_required
def addItem():
    invoice2 = request.args.get('invoice_id', type=int)
    invoice1 = Invoice.query.filter_by(id=invoice2).first()
    form = ItemForm(obj=invoice1)
    if form.validate_on_submit():
        newItem = Item(
            invoice = invoice1,
            quantity = form.quantity.data,
            category = form.category.data,
            brand = form.brand.data,
            model = form.model.data,
            serialNumber = form.serialNumber.data,
            condition = form.condition.data,
            notes = form.notes.data,
            cost = form.cost.data
            )
        db.session.add(newItem)
        db.session.commit()
        return redirect(url_for('invoice'))
    return render_template('invoice/addItems.html', form=form, invoice1=invoice1)

在表单.py在

^{pr2}$

在附件.html在

{% extends "base.html" %}

{% block title %}Invoice{% endblock %}

{% block content %}

<div class="row">

    <div class="col-md-offset-3 col-md-6">

        <h3>Add Items to Invoice</h3>

        {{ invoice1.id }}

        {% from "_formhelpers.html" import render_field %}

        <form method="POST" action="{{ url_for('addItem') }}" role="form">


            {{ form.hidden_tag() }}


            {{ render_field(form.quantity, class ='form-control') }}
            {{ render_field(form.category, class ='form-control') }}
            {{ render_field(form.brand, class ='form-control') }}
            {{ render_field(form.model, class ='form-control') }}
            {{ render_field(form.serialNumber, class ='form-control') }}
            {{ render_field(form.condition, class ='form-control') }}
            {{ render_field(form.notes, class ='form-control') }}
            {{ render_field(form.cost, class ='form-control') }}


            <button type="submit" class="btn btn-default">Add Item</button>

        </form>
    </div>

</div>

{% endblock %}

我可以通过shell成功地将记录保存到数据库中。在

任何帮助都将不胜感激。在

谢谢你!在

  • 伊兹

Tags: 对象divformid表单fielddatahtml