문제가 있습니다. 나는이 쿼리 할 필요가 :OperationalError : (OperationalError) 해당 열이 없습니다.
@app.route('/api/subscriptions/<string:id>', methods=('DELETE',))
@decorators.login_required
def delete_subscription(id):
dbsession = DBSession()
session = Session()
favorit = (dbsession.query(StudentsFavorites)
.filter(Exams.number == str(id))
.filter(StudentsFavorites.exam_id)
.filter(Students.id == StudentsFavorites.student_id)
.filter(Students.id == str(session.get_user_id()))
.delete() )
dbsession.flush()
return jsonify(error=False)
을하지만이 쿼리를 수행 할 때 나는이 예외가 얻을 :
OperationalError: (OperationalError) no such column: exams.number u'DELETE FROM students_favorites WHERE exams.number = ? AND students_favorites.exam_id AND students.id = students_favorites.student_id AND students.id = ?' ('123123123', 'a24213')
테이블이 매우 큰이며, 정보를 많이 얻었다을, 그래서 모든 게시 할 수 없습니다 그것의. 그러나이 쿼리 작동 : 테이블에
@app.route('/api/subscriptions/<string:id>', methods=('PUT',))
@decorators.login_required
def add_subscription(id):
dbsession = DBSession()
session = Session()
examID = (dbsession.query(Exams.id)
.filter(Exams.number == id).first()
)
favorit=StudentsFavorites(student_id=session.get_user_id(), exam_id=examID.id)
dbsession.add(favorit)
dbsession.flush()
return jsonify(error=False)
짧은보기 :
table: Exams
rows: id, number (number is the id i put into the function)
table: StudentsFavorites
rows: student_id, exams_id
table: Students
rows: id
난 정말 이해하지 못했지만, 그는 예외 숫자 행을 찾을 수 없습니다 이유.
편집 :
데이터베이스 StudentsFavorites이 같은
class StudentsFavorites(Base):
"""N:M resolve model for the exams to the semester.
"""
__tablename__ = "students_favorites"
student_id = Column(Unicode(255), ForeignKey("students.id"), primary_key=True, autoincrement=False)
exam_id = Column(Integer, ForeignKey("exams.id"), primary_key=True, autoincrement=False)
created_at = Column(DateTime, nullable = False, default = datetime.now)
student = relationship("Students", uselist = False, lazy="joined")
exam = relationship("Exams", uselist=False, lazy="joined")
뭔가? 나는이 시도 : 해당 ID가/학생
덕분에 많이, 나는 또한 전에이 시도하지만, 내가 나중에 tablestructure를 게시하려고? 다른 아이디어를 :(작동하지만 당신이있어 오류가 무엇 –
를 더 작게 만들 필요가 없었어요 여기에는 다분히 많은 관계가 있으므로 두 번째 링크에서 쿼리를 체크 아웃하면 오히려 쉽게 결합 될 수 있습니다 (관계가 올바르게 결합되었다고 가정 할 때). – AlexLordThorsen
위에서 코드를 편집하면 동일한 오류가 발생합니다. 첫 번째 게시를 편집하고 StudentFavorits 테이블을 가져 왔습니다. 나는 이것이 시험 테이블처럼 조금 더 도움이된다고 생각한다. –