【发布时间】:2014-04-06 22:04:36
【问题描述】:
我正在创建一个记录系统,学生可以在其中注册一个班级。
# MODEL
class Association(Base):
__tablename__ = 'association'
class_id = Column(Integer, ForeignKey('classes.id'), primary_key=True)
student_id = Column(Integer, ForeignKey('students.id'), primary_key=True)
theClass = relationship("Class")
class Student(Base):
__tablename__ = 'students'
id = Column(Integer, primary_key=True)
name = Column(String(30))
classlist = relationship("Association", backref='student')
class Class(Base):
__tablename__ = 'classes'
id = Column(Integer, primary_key=True)
name = Column(String(20), nullable=False)
teacher_id = Column(Integer, ForeignKey('teachers.id'))
enrolled_students = relationship("Association")
我想显示所有尚未注册课程的学生,所以我在我的程序和模板中使用了以下代码,但它只显示页面上的所有学生。
currentClass = session.query(Class).filter_by(id=class_id).first()
students = session.query(Student).all()
# TEMPLATE
% for st in students:
% for assoc in currentClass.enrolled_students:
% if st.id != assoc.student_id:
<input type="checkbox" name="student_id" value="${ st.id }" >${ st.id } - ${ st.forename } ${ st.surname }</input><br/>
% endif
% endfor
% endfor
【问题讨论】:
标签: python object sqlalchemy pyramid object-oriented-database