@ring0za

Как сократить количество JOIN при использовании SQLAlchemy-ORM и расширения Flask-sqlalchemy?

Есть некая функция-помощник которая формирует JSON
def product_helper(item):
    cat_id=self.product.query.with_entities(self.product.category_id).filter_by(category_id=item.category_id).first().category_id
cat_name =self.category.query.with_entities(self.category.category_name,self.category.id).filter_by(id=cat_id).first().category_name
farm_id = self.product.query.with_entities(self.product.farm_id).filter_by(farm_id=item.farm_id).first().farm_id
farm_name = self.farm.query.with_entities(self.farm.farm_name,self.farm.id).filter_by(id=farm_id).first().farm_name
		return {
			'success':1,
			'id':item.id,
			'name':item.product_name,
			'category':cat_name, 	
			'cover':item.cover.small,
			'created_on':pytils.dt.ru_strftime(u"%d %B %Y %H:%M:%S", inflected=True,date=item.created_on),
			'description':item.description,
			'price':item.price,
			'farm':farm_name,
			'phone':item.farm.user.phone,
			'images':[i.normal for i in
self.images.with_entities(models.Image.normal).filter_by(product_id=item.id).all()]
				}

Все решилось так, что я просто из главной таблицы products получаю farm_id/category_id/etc и далее уже запрашиваю из подчиненных таблиц то, что мне надо, при этом не выбирая все поля.
  • Вопрос задан
  • 2456 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы