Добавление данных в таблицу БД в цикле for. sqlalchemy PYTHON

Узнай цену своей работы

Формулировка задачи:

Помогите с кодом Python. Нужно скопировать записи с БД с заменой одного значения. Есть модель БД:
Листинг программы
  1. lass Group(db.Model):
  2. """ Group model """
  3. __tablename__ = "group"
  4. id = db.Column(db.Integer, primary_key=True)
  5. project_id = db.Column(db.Integer, db.ForeignKey("project.id"), nullable=True)
  6. project = db.relationship("Project", foreign_keys=[project_id])
  7. active = db.Column(db.Boolean, default=True, index=True)
  8. name = db.Column(db.String(64), index=True)
  9. permissions = db.relationship(
  10. "Permission",
  11. secondary=group_has_permission,
  12. lazy="dynamic",
  13. backref=db.backref("groups", lazy="dynamic")
  14. )
  15. manager_id = db.Column(db.Integer, db.ForeignKey('user.id'))
  16. manager = db.relationship('User', backref='managed_groups'
Есть код:
Листинг программы
  1. groups = Group.query.filter(Group.project_id ==
  2. current_project.id).all()
  3. for group in groups:
  4. copy_groups = Group()
  5. copy_groups.project_id = copy_project.id
  6. copy_groups.name = group.name
  7. db.session.add(copy_groups)
  8. 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}]

Пробовал изменить код:
Листинг программы
  1. groups = Group.query.filter(Group.project_id ==
  2. current_project.id).all()
  3. for group in groups:
  4. copy_groups = Group()
  5. copy_groups.project_id = copy_project.id
  6. copy_groups.name = group.name
  7. db.session.add(copy_groups)
  8. db.session.commit()
Но все равно дает ошибку. Помогите пожалуйста, как добавить каждую запись с groups в базу данных

Решение задачи: «Добавление данных в таблицу БД в цикле for. sqlalchemy PYTHON»

textual
Листинг программы
  1. db.session.add(copy_groups)
  2. db.session.commit()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут