私は次のモデルでsqlalchemyを使用しています
class Page(db.Model):
id= ..
posts = db.relationship('Post', lazy='dynamic')
class Post(db.Model):
id=..
page_id=..
author= db.Column(db.String)
date= db.Column(db.DateTime)
Pageクラスには、特定の日付と作成者のページの投稿を取得するメソッドがあります。次のようになります。
def author_posts(author, start_date=None, end_date=None):
p= self.posts.filter(Post.author == author)
if start_date:
p.filter(Post.date >= start_date)
if end_date:
p.filter(Post.date <= end_date)
return p
問題は、関数に開始日と終了日が指定されている場合でも、作成者によってフィルタリングされた投稿が返されるが、dates引数によっては返されないことです。
それを行う正しい方法は何ですか?
編集:生成されたクエリ
SELECT post.id AS post_id, post.page_id AS post_page_id, post.author AS post_author ... FROM post WHERE post.author = ?