Pau*_*ris 3 python database sqlite sqlalchemy flask-sqlalchemy
我将Flask和SQLAlchemy与SQLite结合使用来创建一个应用程序,该程序可跟踪食品储藏室中的物品以及您想要制作的食谱。
我对此很困惑。我有一张表,其中的记录应该具有重复的字段。每次尝试在我的应用程序中为此表创建数据库条目时,都会引发“ IntegrityError:UNIQUE约束失败”。这令人困惑,因为它所引发的列没有显式设置唯一约束。
这是我要插入的表的模型:
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'
Run Code Online (Sandbox Code Playgroud)
这是应该添加到数据库的条目的视图代码:
@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)
Run Code Online (Sandbox Code Playgroud)
这是我提交表单时遇到的错误:
IntegrityError: (IntegrityError) UNIQUE constraint failed: pantry_item.name u'INSERT INTO pantry_item (name, amount, user_id) VALUES (?, ?, ?)' (u'Milk', u'2 cups', 1)
Run Code Online (Sandbox Code Playgroud)
在表中已经存在名称为“牛奶”的PantryItem的记录。
我是否假定PantryItem的主键“ id”会将一条记录与另一条具有相同名称/金额/所有者的记录区分开来,这是不正确的吗?还是我只是完全忽略了什么?
预先感谢您的帮助。
| 归档时间: |
|
| 查看次数: |
4075 次 |
| 最近记录: |