提交前检查外键约束
Check foreign key constraint before committing
有什么方法可以在提交前检查外键约束吗?我知道的唯一方法是赶上 sqlite3.IntegrityError
.
我有一个使用 Flask-SQLAlchemy 的 Flask 应用程序。其中一个表具有外键约束。如果删除了外键引用的行,则会引发 IntegrityError
。我想给用户更好的反馈。是否可以找出要显示的链接行?
您可以处理错误:
try:
db.session.commit()
except IntegrityError:
return render_template('error.html', msg="You can't delete this!")
或者甚至包括有关导致错误的行的信息:
post = Post.query.get(123) # object we are trying to delete
comments = post.comments # foreign key preventing deletion
return render_template('error.html', msg="You can't delete this!", comments=comments)
在您的模板中:
<p>Delete these comments first:</p>
{% for comment in comments %}
{{ comment.text }}
{% endfor %}
有什么方法可以在提交前检查外键约束吗?我知道的唯一方法是赶上 sqlite3.IntegrityError
.
我有一个使用 Flask-SQLAlchemy 的 Flask 应用程序。其中一个表具有外键约束。如果删除了外键引用的行,则会引发 IntegrityError
。我想给用户更好的反馈。是否可以找出要显示的链接行?
您可以处理错误:
try:
db.session.commit()
except IntegrityError:
return render_template('error.html', msg="You can't delete this!")
或者甚至包括有关导致错误的行的信息:
post = Post.query.get(123) # object we are trying to delete
comments = post.comments # foreign key preventing deletion
return render_template('error.html', msg="You can't delete this!", comments=comments)
在您的模板中:
<p>Delete these comments first:</p>
{% for comment in comments %}
{{ comment.text }}
{% endfor %}