Как обрабатывать циклическую зависимость между двумя таблицами в SQLAlchemyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обрабатывать циклическую зависимость между двумя таблицами в SQLAlchemy

Сообщение Anonymous »

У меня возникла проблема с разрешением циклической зависимости между двумя таблицами. Просмотрел всю информацию, которую нашел, но все равно не совсем работает.
Мои таблицы выглядят так

Код: Выделить всё

             run                                                calibration_metric
-------------------------------------------           ---------------------------------
run_pk         calibration_metric_pk                    calibration_metric          run_pk
1                     5                                      5                     1
Отношение калибрации_метрики к запуску составляет «многие к 1», а от пробега к калибрации_метрики – от 1 к 1
У меня есть следующие определения (лишние поля удалены)

Код: Выделить всё

lass Run(ModelBase):
__tablename__ = 'run'
pk = mapped_column(Integer, primary_key=True)
calibration_metric_pk = mapped_column(ForeignKey("calibration_metric.pk", name="fk_run_calibration_metric"))
metric = relationship("CalibrationMetric",
primaryjoin="calibration_metric_pk == CalibrationMetric.pk",
post_update=True)

lass CalibrationMetric(ModelBase):
__tablename__ = 'calibration_metric'
pk = mapped_column(Integer, primary_key=True)
run_pk = mapped_column(ForeignKey("run.pk", name="fk_calibration_metric_run"))
run = relationship("Run")
У меня есть этот раздел «objective_metric_pk == CalibrationMetric.pk», в кавычках, потому что без них Python жаловался на циклический импорт
Я получаю эту ошибку

Код: Выделить всё

sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[Run(run)], expression 'calibration_metric_pk == CalibrationMetric.pk' failed to locate a name ("name 'calibration_metric_pk' is not defined"). If this is a class name, consider adding this relationship() to the  class after both dependent classes have been defined.
Я не могу понять, почему он не находит калибратор_metric_pk
Обратите внимание, что меня не волнует получение списка объектов Calibration_Metric в Run, связанных первичным ключом Run. Меня интересует только соотношение 1-1 и получение объекта Calibration_Metric, на который указывает поле Calibration_metric_pk.
Но мне также хотелось бы иметь доступ к объекту Run из Calibration_Metric.run_pk. Я не думаю, что мне нужно указывать back_populates, поскольку меня интересует только один конец каждого из отношений

Подробнее здесь: https://stackoverflow.com/questions/786 ... sqlalchemy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как исправить эту циклическую зависимость весной?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как исправить эту циклическую зависимость весной?
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Проект Python PyQt5 разделен на два отдельных файла, создавая циклическую зависимость
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Переопределить циклическую зависимость Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Переопределить циклическую зависимость Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»