python - 如何修复 "peewee.IntegrityError: NOT NULL constraint failed: fiskalna.user_id"

标签 python sqlite flask

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

有人可以帮助我吗?

我到处搜索过,即使这里有类似的问题,但它没有解决我的问题。如果我的问题有问题,请原谅我还是初学者。

模型.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")

应用程序.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)

最佳答案

我对 Peewee 不太了解,但我可以看到您已经声明了一个 ForeignKeyField “User”,但您尚未在 .create(... 调用。

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

为了解决这个问题,当您想要添加新的 Fiskalna 记录时,您需要在 create() 中包含 user=your_user_record > 打电话。

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

关于python - 如何修复 "peewee.IntegrityError: NOT NULL constraint failed: fiskalna.user_id",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57563909/

相关文章:

python - Centos 上带有 sqlite3 模块的 python 2.7.3 的问题

python - 有没有办法动态更改 Altair 中选定点的 zorder?

python - Pandas 整数列的数据透视表返回小数值

sqlite - 我如何重置 Superset 的数据库?

sql - sqlite3命令行返回码不一致

python - 在 Flask 中使用具有不同绑定(bind)的相同名称的表

python:从相对路径导入

ruby-on-rails - Rails - 许多其他人可以使用的一种模型?

python - 从 SQLalchemy 中的自引用表创建树

python - 表单发送错误,Flask