20 09 2012 Python SQLAlchemy Tweet
単にタグを含むエントリを取ってくる場合にはこうやればいいんだけど、さらに絞り込む場合にどうやればいいのか悩んだ。
filter(Entry.tags.in_(tags))
とかやったら、
"in_()" operator is not currently implemented for many-to-one-relations
みたいなエラーが出てきたので、グーグル先生にお伺いを立てたら解答が見つかった。
というわけで
Entry.query.filter_by(status=1).filter(Entry.tags.any(Tag.id.in_([tag.id])))
という感じで、anyとin_を組み合わせるのがいいらしい。
もう少し精進せなアカンなと。
結局こういったあたりで悩むんだったら、最初からpymongoでいいんじゃなかろうかと思ったりするんだけど、Flask-SQLAlchemyが便利すぎなのでなかなか悩ましいところ。