У меня в настоящее время проблема с отношением самообращения.
У меня есть таблица Customer
, у которой может быть родитель (также Customer
), подобный этому:
class CustomerModel(db.Model):
__tablename__ = 'customer'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('customer.id'))
parent = relationship("CustomerModel", foreign_keys=[parent_id])
Так что моя проблема в том, что когда я пытаюсь загрузить родительский объект, SQLAlchemy строит следующий запрос:
Давайте возьмем этого клиента, например: Customer(id=1, parent_id=10)
SELECT *
FROM customer
WHERE 1 = customer.parent_id
Итакусловие WHERE неверно, потому что оно сравнивает parent_id
с id
клиента, от которого я пытаюсь загрузить родителя.
Правильный запрос должен быть:
SELECT *
FROM customer
WHERE 10 = customer.parent_id
Что я делаю не так?