如何修复“ peewee.IntegrityError:NOT NULL约束失败:fiskalna.user_id”

时间:2019-08-19 21:00:53

标签: python sqlite flask

我试图用Flask制作我的第一个Web应用程序,但是当我运行它时,我得到一个错误:peewee.IntegrityError:NOT NULL约束失败:fiskalna.user_id

有人可以帮我吗?

即使在这里也有类似的问题,我仍然在所有地方进行了搜索,但是并没有解决我的问题。如果我的问题有问题,请原谅我仍然是初学者。

models.py

            raise ValueError("User exsists")
class Fiskalna(Model):
    user=ForeignKeyField(
        model=User,
        backref='fiskalna')
    br_fiskalna=IntegerField(unique=True)
    suma=IntegerField()
    dnaok=FloatField()
    dodanena_na=DateTimeField(default=datetime.datetime.now)

    class Meta():
        database=DATABASE
        order_by=("-dodanena_na")

app.py

@app.route("/new", methods=["GET", "POST"])
@login_required
def post():
    form=forms.FiskalnaForm()
    if form.validate_on_submit():
        models.Fiskalna.create(
                               br_fiskalna=form.br_fiskalna.data,
                               suma=form.suma.data,
                               danok=form.danok.data)
        flash("Postiranoo", "success")
        return redirect(url_for("register"))
    return render_template("post.html", form=form)

1 个答案:

答案 0 :(得分:0)

我对Peewee不太了解,但是我可以看到您已声明ForeignKeyField“用户”,而您在.create(...通话中并未填充该用户。

我假设在数据库中,ForeignKeyField导致在fiskalna表-user_id上创建一个NOT NULL列,这就是IntegrityError的原因。

要解决此问题,当您想添加新的Fiskalna记录时,需要在user=your_user_record调用中包含create()

旁注,您在danok参数上也有一个拼写错误-它与模型列不匹配。