python - db.session.commit()的时候抛出sqlalchemy.exc.IntegrityError错误?
PHP中文网
PHP中文网 2017-04-17 11:21:00
[Python讨论组]
class Category(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	category = db.Column(db.String(80))
	posts = db.relationship('Post', backref="posts", lazy="dynamic")

	def __repr__(self):
		return "<Category %s>" % self.category

class Post(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	title = db.Column(db.String(120))
	content = db.Column(db.Text)
	timestamp = db.Column(db.DateTime)
	category_id = db.Column(db.Integer, db.ForeignKey('category.id'))

	def __repr__(self):
		return "<Post %s>" % self.title

在shell里面执行下面的代码的时候不会报错

>>> c=Category(category='flask')
>>> db.session.add(c)
>>> db.session.commit()

可是执行下面的代码的时候就抛出sqlalchemy.exc.IntegrityError错误了。

>>> p=Post(title='test', content='ccc', timestamp=datetime.utcnow(), category_id=c)
>>> db.session.add(c)
>>> db.session.commit()

我不知道哪里做错了。。估计是ForeignKey的问题?
以前不用ForeignKey的时候是没有报错的。。。

求教,谢谢~

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
天蓬老师

好吧....我已经知道为什么了....这是不了解relationship导致的.....还有就是创建p实例写错了。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号