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

Метод references класса ForeignKey

Метод references класса ForeignKey возвращает объект Column, на который ссылается данный внешний ключ. Метод не принимает параметров и используется для получения информации о целевом столбце связи.

Синтаксис

foreign_key.references()

Пример

Давайте создадим две таблицы, связанные внешним ключом, и получим столбец, на который ссылается внешний ключ:

from sqlalchemy import create_engine, ForeignKey, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class User(Base): __tablename__ = 'users' id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] = mapped_column(String(50)) class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) user_id: Mapped[int] = mapped_column(ForeignKey('users.id')) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) fk = Article.__table__.c.user_id.foreign_keys[0] ref = fk.references() print(ref)

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

"users.id"

Пример

Давайте сравним объект, полученный методом references, с реальным столбцом таблицы:

from sqlalchemy import create_engine, ForeignKey, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class User(Base): __tablename__ = 'users' id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] = mapped_column(String(50)) class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String(100)) user_id: Mapped[int] = mapped_column(ForeignKey('users.id')) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) fk = Article.__table__.c.user_id.foreign_keys[0] ref = fk.references() print(ref is User.__table__.c.id) print(ref.name) print(ref.table.name)

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

True "id" "users"

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

  • класс ForeignKey,
    который представляет внешний ключ таблицы
  • метод get_referent,
    который возвращает таблицу, на которую ссылается ключ
  • атрибут column,
    который хранит столбец с внешним ключом
  • атрибут parent,
    который хранит таблицу-владельца внешнего ключа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить