РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
666 of 711 menu

Атрибут deleted

Атрибут deleted класса InstanceState возвращает булево значение True или False. Он показывает, был ли объект помечен как удаленный в текущей сессии. Если объект был удален через метод delete, то атрибут вернет True. В противном случае - False.

Синтаксис

from sqlalchemy import inspect state = inspect(obj) state.deleted

Пример

Давайте создадим объект и проверим его состояние до удаления:

from sqlalchemy import create_engine, inspect from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article 1') session.add(article) session.commit() state = inspect(article) print(state.deleted)

Результат выполнения кода:

False

Пример

Теперь давайте удалим объект и проверим атрибут deleted:

from sqlalchemy import create_engine, inspect from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article 1') session.add(article) session.commit() session.delete(article) state = inspect(article) print(state.deleted)

Результат выполнения кода:

True

Пример

Давайте проверим состояние объекта после отката транзакции:

from sqlalchemy import create_engine, inspect from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article 1') session.add(article) session.commit() session.delete(article) session.rollback() state = inspect(article) print(state.deleted)

Результат выполнения кода:

False

Смотрите также

  • класс InstanceState,
    который представляет состояние объекта
  • атрибут was_deleted,
    который показывает, был ли объект удален ранее
  • атрибут detached,
    который показывает, отсоединен ли объект от сессии
  • атрибут persistent,
    который показывает, сохранен ли объект в базе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить