sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Viewed 3668

I have such structure in database

tasks_exams = db.Table('tasks_exams',
    db.Column('task_id', db.Integer, db.ForeignKey('tasks.id')),
    db.Column('exam_id',  db.Integer, db.ForeignKey('exams.id'))
)

class Tasks(db.Model):
    __tablename__ = 'tasks'

    id        = db.Column(db.Integer, primary_key=True, autoincrement=True)
    task      = db.Column(db.Text)


class Exams(db.Model):
    __tablename__ = 'exams'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name_of_Exam = db.Column(db.String(140))
    number_of_exam_task = db.Column(db.SmallInteger)
    name_of_exams_task = db.Column(db.String(140))

    tasks = db.relationship('Tasks',
                            secondary=tasks_exams,
                            back_populates="exams")

I want to get all Tasks where exams_1 is:

tasku = Exams.query.filter(Exams.name_of_Exam == "exams_1").scalar()

And I get an error:

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

How should I solve my problem?

2 Answers
tasku = Tasks.query.filter(Exams.name_of_Exam =="ЕГЭ").all()
Related