@mrarlek1n
Like Python

При компиляции кода выдает expected 'for'?

хочу написать тг бота по урокам
Physics is Simple

на 7 уроке я понял что мне нужно не 4 уровневое меню, а 5 уровневое, прописал еще 1 подуровень( получилось так: category, subcategory, wsubcategory). Если полностью убираю использование wsubcategory и аналогов код работает. Как только хочу +1 уровень ничего не работает. Код при котором выдает ошибку ниже
from typing import List

from sqlalchemy import and_

from utils.db_api.models import Item



# Функция для создания нового товара в базе данных. Принимает все возможные аргументы, прописанные в Item
async def add_item(**kwargs):
    new_item = await Item(**kwargs).create()
    return new_item


# Функция для вывода товаров с РАЗНЫМИ категориями
async def get_categories() -> List[Item]:
    return await Item.query.distinct(Item.category_code).gino.all()


# Функция для вывода товаров с РАЗНЫМИ подкатегориями в выбранной категории
async def get_subcategories(category) -> List[Item]:
    return await Item.query.distinct(Item.subcategory_code).where(Item.category_code == category).gino.all()

# Функция для вывода товаров с РАЗНЫМИ подкатегориями в выбранной категории
async def get_wsubcategories(category, subcategory) -> List[Item]:
    return await Item.query.distinct(Item.wsubcategory_code).where((Item.subcategory_code == subcategory, Item.category_code == category).gino.all()


# Функция вывода всех товаров, которые есть в переданных категории и подкатегории
async def get_items(category_code, subcategory_code, wsubcategory_code) -> List[Item]:
    item = await Item.query.where(
        and_(Item.category_code == category_code,
             Item.subcategory_code == subcategory_code,
             Item.wsubcategory_code == wsubcategory_code )
    ).gino.all()
    return item


# Функция для получения объекта товара по его айди
async def get_item(item_id) -> Item:
    item = await Item.query.where(Item.id == item_id).gino.first()
    return item


выдает ошибку эта часть кода
# Функция вывода всех товаров, которые есть в переданных категории и подкатегории
async def get_items(category_code, subcategory_code, wsubcategory_code) -> List[Item]:
    item = await Item.query.where(
        and_(Item.category_code == category_code,
             Item.subcategory_code == subcategory_code,
             Item.wsubcategory_code == wsubcategory_code )
    ).gino.all()
    return item


уже не знаю что делать, подскажите пожалуйста. Заранее спасибо
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@Wispik
В функции get_wsubcategories лишняя скобка открыта
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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