Ошибка при использовании отношения на дочерней таблице - PullRequest
0 голосов
/ 24 марта 2020

У меня есть таблица Machine, которая имеет отношение один ко многим с таблицей Sensor, я всегда использую объект отношения в классе Parent, но теперь мне нужно использовать и в Child, поэтому мой код:

Machine.py

from Models.Sensor import MachineSensor
class Machine(sql.Model):
   id = sql.Column(types.Integer, primary_key=True)
   name = sql.Column(types.Text, nullable=False)
   client_id = sql.Column(types.Integer, sql.ForeignKey('client.id'), nullable=False)

   sector_id = sql.Column(types.Integer, sql.ForeignKey('sector.id'))
   sensor = sql.relationship(MachineSensor, cascade="all, delete-orphan", back_populates='machine')

и Sensor.py

class MachineSensor(Variable):
    sector_id = sql.Column(types.Integer, sql.ForeignKey('sector.id'))
    machine_id = sql.Column(types.Integer, sql.ForeignKey('machine.id'))
    machine = sql.relationship('Machine', uselist=False, back_populates='sensor')

    polymorphic_identity = 'MACHINE_SENSOR'

Я могу без проблем позвонить create_all в начале, но если я попытаюсь сделать запрос в любом таблица в базе данных я получаю эту ошибку: sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Triggering mapper: 'mapped class MachineSensor->variable'. Original exception was: When initializing mapper mapped class MachineSensor->variable, expression 'Machine' failed to locate a name ("name 'Machine' is not defined"). If this is a class name, consider adding this relationship() to the <class 'Models.Sensor.MachineSensor'> class after both dependent classes have been defined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...