У меня есть трассировка при выполнении части моего кода.
[«Запрос экземпляра по адресу 0x7f1101d1e3c8 не привязан к сеансу;операция обновления атрибута не может быть продолжена »]
Отслеживание фактически происходит, когда я пытаюсь вернуть current_request.id.Может быть, кто-то сталкивался с подобной проблемой.Буду благодарен за помощь в решении.
current_request = db_session.query(
Request
).filter(
Request.id == request_id
).one()
current_request.catalog_request_priority_id = catalog_request_priority.id
current_request.contact_phone = contact_phone
current_request.contact_email = contact_email
current_request.service_id = service.id
current_request.is_emergency = is_emergency
current_request.is_paid = is_paid
current_request.is_planned = is_planned
db_session.commit()
current_document = db_session.query(
Document
).filter(
Document.id == current_request.document_id
).one()
if service.catalog_service_category_id == 2:
current_document.catalog_document_type_id = 2
if service.catalog_service_category_id == 3:
current_document.catalog_document_type_id = 1
current_document.description = description
current_document.external_number = external_number
current_document.modified_by = author_id
current_document.modified_at = datetime.utcnow()
db_session.commit()
if service.catalog_service_category_id not in [2, 3]:
raise MethodException(
'Incorrect service category'
)
if current_request.is_emergency is True and current_request.sla_id is None:
current_request.sla_id = 6
if current_request.is_emergency is False and current_request.sla_id is None:
current_request.sla_id = 4
db_session.commit()
current_request.planned_reaction_time = self.__get_planned_reaction_time(
sla_id=current_request.sla_id,
user_session_container=user_session_container
)
db_session.commit()
return current_request.id
@staticmethod
def __get_planned_reaction_time(user_session_container, sla_id):
db_session = user_session_container.db_session
planned_reaction_time_for_this_sla = db_session.query(
Sla
).filter(
Sla.id == sla_id
).one()
reaction_time = planned_reaction_time_for_this_sla.reaction_time
planned_reaction_time_for_current_request = datetime.now() + reaction_time
return planned_reaction_time_for_current_request