Добавление данных в таблицу БД в цикле for. sqlalchemy PYTHON
Формулировка задачи:
Помогите с кодом Python. Нужно скопировать записи с БД с заменой одного значения.
Есть модель БД:
Есть код:
Но при запуске кода выбивает ошибку:
Но все равно дает ошибку.
Помогите пожалуйста, как добавить каждую запись с groups в базу данных
Листинг программы
- lass Group(db.Model):
- """ Group model """
- __tablename__ = "group"
- id = db.Column(db.Integer, primary_key=True)
- project_id = db.Column(db.Integer, db.ForeignKey("project.id"), nullable=True)
- project = db.relationship("Project", foreign_keys=[project_id])
- active = db.Column(db.Boolean, default=True, index=True)
- name = db.Column(db.String(64), index=True)
- permissions = db.relationship(
- "Permission",
- secondary=group_has_permission,
- lazy="dynamic",
- backref=db.backref("groups", lazy="dynamic")
- )
- manager_id = db.Column(db.Integer, db.ForeignKey('user.id'))
- manager = db.relationship('User', backref='managed_groups'
Листинг программы
- groups = Group.query.filter(Group.project_id ==
- current_project.id).all()
- for group in groups:
- copy_groups = Group()
- copy_groups.project_id = copy_project.id
- copy_groups.name = group.name
- db.session.add(copy_groups)
- db.session.commit()
sqlalchemy.exc.IntegrityError sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1062, "Duplicate entry 'owners-60' for key 'group_project_id_index'") [SQL: 'INSERT INTO `group` (project_id, active, name, manager_id) VALUES (%(project_id)s, %(active)s, %(name)s, %(manager_id)s)'] [parameters: {'manager_id': None, 'project_id': 60, 'name': 'owners', 'active': 1}]
Пробовал изменить код:
Листинг программы
- groups = Group.query.filter(Group.project_id ==
- current_project.id).all()
- for group in groups:
- copy_groups = Group()
- copy_groups.project_id = copy_project.id
- copy_groups.name = group.name
- db.session.add(copy_groups)
- db.session.commit()
Решение задачи: «Добавление данных в таблицу БД в цикле for. sqlalchemy PYTHON»
textual
Листинг программы
- db.session.add(copy_groups)
- db.session.commit()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д