我正在尝试使用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)
最佳答案
我对Peewee不太了解,但是我可以看到您已声明ForeignKeyField
“用户”,您没有在.create(...
调用中填充它。
我假设在数据库中,ForeignKeyField导致在fiskalna
表-user_id
上创建一个NOT NULL列,这就是给出IntegrityError的原因。
为了解决此问题,当您要添加新的Fiskalna
记录时,需要在user=your_user_record
调用中包括create()
。
旁注,您还在danok
参数上创建了一个错字-它与模型列不匹配。
关于python - 如何解决“peewee.IntegrityError:NOT NULL约束失败:fiskalna.user_id”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57563909/