Доступ к атрибутам ForeignKeyField в запросе с использованием Peewee в Python ⇐ Python
-
Anonymous
Доступ к атрибутам ForeignKeyField в запросе с использованием Peewee в Python
Моя база данных выглядит примерно так:
класс ModelA(BaseModel): идентификатор = АвтоПоле() б = ForeignKeyField (МодельB) c = ForeignKeyField (МодельC) дополнительно = CharField() класс ModelB (БазоваяМодель): идентификатор = АвтоПоле() а = ForeignKeyField(МодельA) c = ForeignKeyField (МодельC) дополнительно = CharField() класс ModelC (БазоваяМодель): идентификатор = АвтоПоле() б = ForeignKeyField (МодельB) а = ForeignKeyField(МодельA) дополнительно = CharField() и я хочу выполнить запрос, чтобы получить строки из ModelA, объединенные с ModelB, где ModelA.c.id — определенные значения.
Что-то вроде:
sample = ModelA.select(ModelA, ModelB) .join(МодельB, on=ModelA.b) .where(ModelA.c.id = define_c_id) Это не работает. Но мне кажется, что я что-то не понимаю в том, как работает .where() после .join(). Или, может быть, мне нужно использовать псевдонимы (которые я не совсем понимаю). Как правильно выполнить такой запрос?
Моя база данных выглядит примерно так:
класс ModelA(BaseModel): идентификатор = АвтоПоле() б = ForeignKeyField (МодельB) c = ForeignKeyField (МодельC) дополнительно = CharField() класс ModelB (БазоваяМодель): идентификатор = АвтоПоле() а = ForeignKeyField(МодельA) c = ForeignKeyField (МодельC) дополнительно = CharField() класс ModelC (БазоваяМодель): идентификатор = АвтоПоле() б = ForeignKeyField (МодельB) а = ForeignKeyField(МодельA) дополнительно = CharField() и я хочу выполнить запрос, чтобы получить строки из ModelA, объединенные с ModelB, где ModelA.c.id — определенные значения.
Что-то вроде:
sample = ModelA.select(ModelA, ModelB) .join(МодельB, on=ModelA.b) .where(ModelA.c.id = define_c_id) Это не работает. Но мне кажется, что я что-то не понимаю в том, как работает .where() после .join(). Или, может быть, мне нужно использовать псевдонимы (которые я не совсем понимаю). Как правильно выполнить такой запрос?
Мобильная версия