gpt4 book ai didi

python - SQLAlchemy:唯一约束失败错误,但未设置唯一约束

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:23 24 4
gpt4 key购买 nike

我将 Flask 和 SQLAlchemy 与 SQLite 结合使用来创建一个应用程序,用于跟踪食品储藏室中的元素以及您喜欢制作的食谱。

我被这个难住了。我有一个表,其中的记录应该可以有重复的字段。每次我尝试在我的应用程序中为此表创建数据库条目时,都会引发“IntegrityError:UNIQUE constraint failed”。这令人费解,因为引发它的列没有明确设置唯一约束。

这是我要插入的表的模型:

class PantryItem(db.Model):

id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64))
amount = db.Column(db.String(12))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

def __repr__(self):
return '<PantryItem %r> % self.name'

这是应添加到数据库的条目的 View 代码:

@app.route('/pantry', methods=['GET', 'POST'])
@login_required
def pantry():

form = IngredientForm()
pantry = PantryItem.query.filter_by(owner=g.user).all()

if form.validate_on_submit():

pantry_item = PantryItem(name=form.name.data, amount=form.amount.data, owner=g.user)
db.session.add(pantry_item)
db.session.commit()

flash('You added %s to the pantry.' % pantry_item.name)
return redirect(url_for('pantry'))

return render_template('pantry.html',
form=form,
user=g.user,
pantry=pantry)

这是我在提交表单时遇到的错误:

IntegrityError: (IntegrityError) UNIQUE constraint failed: pantry_item.name u'INSERT INTO pantry_item (name, amount, user_id) VALUES (?,  ?, ?)' (u'Milk', u'2 cups', 1)

表中已有一条名为“Milk”的 PantryItem 的记录。

我是否假设 PantryItem 的主键“id”会将一条记录与另一条具有相同名称/数量/所有者的记录区分开来?还是我完全忽略了什么?

预先感谢您的帮助。

最佳答案

删除您的表或删除您的数据库并再次初始化它。每次更改架构时,您都必须删除表并重新初始化,它不只是更新。

关于python - SQLAlchemy:唯一约束失败错误,但未设置唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com