Я пытаюсь добавить данные в таблицу
>>> paper = ['1', '2']
>>> work = Work(name="Sample", cost="500")
>>> db.session.add(work)
>>> for pape1 in paper:
>>> paper1 = Paper.query.filter_by(id=pape1).first()
>>> paper1.pages.append(work)
>>> db.session.add(paper1)
>>> db.session.commit()
models.py
papers = db.Table('papers',
db.Column('work_id', db.Integer, db.ForeignKey('work.id'), primary_key=True),
db.Column('paper_id', db.Integer, db.ForeignKey('paper.id'), primary_key=True)
)
class Work(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(90), nullable=False)
page = db.relationship('Paper', secondary=papers, lazy='subquery',
backref=db.backref('pages', lazy=True), uselist=False)
cost = db.Column(db.Integer)
class Paper(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(90), nullable=False)
Я думаю, что я должен получить что-то вроде этого.
work_id | paper_id
---------|-----------
1 1 | 1
---------|-----------
2 1 | 2
Но я получаю это.таблица документов
рисунок 1.
work_id | paper_id
---------|-----------
1 1 | 2
---------------------
Бумага с id = 2 однажды связывается с работой с id = 1.Но когда я начал отлаживать.Я видел, что после первого цикла это добавляет к таблице документов.Вот так.
рисунок 2.
work_id | paper_id
---------|-----------
1 1 | 1
---------------------
Но после второго цикла я думаю, что он обновляет его с рисунка 2 до рисунка 1. Я не знаючто я делаю не так?