【发布时间】:2015-05-05 04:04:51
【问题描述】:
其实我以前从来没有遇到过这个错误:
sqlalchemy.exc.InvalidRequestError: stale association proxy, parent object has gone out of scope
在做了一些研究之后,看起来是因为在关联代理工作时父对象正在被垃圾收集。太棒了。
但是,我不确定发生在哪里。
相关代码:
# models.py
class Artist(db.Model):
# ...
tags = association_proxy('_tags', 'tag',
creator=lambda t: ArtistTag(tag=t))
# ...
class Tag(db.Model):
# ...
artist = association_proxy('_artists', 'artist',
creator=lambda a: ArtistTag(artist=a))
# ...
class ArtistTag(db.Model):
# ...
artist_id = db.Column(db.Integer, ForeignKey('artists.id'))
artist = db.relationship('Artist', backref='_tags')
tag_id = db.Column(db.Integer, ForeignKey('tags.id'))
tag = db.relationship('Tag', backref='_artists')
# api/tag.py
from flask.ext.restful import Resource
from ..
class ListArtistTag(Resource):
def get(self, id):
# much safer in actual app
return TagSchema(many=True)
.dump(Artist.query.get(id).tags)
.data
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy