SQLAlchemy извлекает строки без соответствующих объектов через внешний ключ - PullRequest
1 голос
/ 05 марта 2019

Я пробовал несколько вариантов этого, в том числе существует, рассчитывать / группировать по и не могу заставить его работать правильно.

У меня есть следующая модель:

class Image(db.Model):
 id = db.Column(db.Integer, primary_key=True)
 file_name = db.Column(db.String(128))
 part_id = db.Column(db.Integer, db.ForeignKey('part.id'))

class Part(db.Model):
 id = db.Column(db.Integer, primary_key=True)
 make = db.Column(db.String(128), default='')
 model = db.Column(db.String(128), default='')
 images = db.relationship('Image')

Я пытаюсь получить все части, у которых пока нет изображений.Этот код не работал правильно:

p = db.session.query(Part, func.count(Image.id)).join(Image).group_by(Part).having(func.count(Image.id) == 0).all()

1 Ответ

0 голосов
/ 06 марта 2019

Вы можете использовать any() для проверки существования связанных строк.Например:

parts = session.query(Part).filter(~Part.images.any())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...