【发布时间】:2011-04-06 15:15:53
【问题描述】:
我正在使用 sqlalchemy 0.6.4。
我有 2 个类:Question 和 Tag,它们是多对多的。
class Question(Base):
__tablename__ = "questions"
id = Column(Integer, primary_key=True)
deleted = Column(Boolean)
...
tags = relationship('Tag', secondary=r_questions_tags)
class Tag(Base):
__tablename__ = "tags"
id = Column(BigInteger, primary_key=True)
questions = relationship('Question', secondary=r_questions_tags)
所以,tag.questions 会得到属于一个标签的所有问题。
但是现在,由于Question 有一个deleted 列,我希望这样做:
class Tag(Base):
...
# get non-deleted questions
questions = relationship('Question', secondary=r_questions_tags,
condition='Question.deleted==False')
# get deleted questions
deleted_questions = relationship('Question', secondary=r_questions_tags,
condition='Question.deleted==True')
但不幸的是,没有这样的condition 参数。我现在能做什么?
【问题讨论】:
-
删除所有“已删除”问题的 QuestionTag 记录是否有意义?也许您可以创建一个“已删除问题”关系并将问题“移动”到那里。
-
你的意思是我可以创建另一个表来保存“deleted_questions_tags”吗?太复杂了
标签: many-to-many sqlalchemy conditional-statements