async def process_message(message: types.Message, state: FSMContext): async with state.proxy() as data: data['text'] = message.text user_message = data['text'] product.category = user_message DBMS.add_category(product) await message.answer( f"Товар {product.codename} на сумму {product.price} " f"добавлен в категорию {product.category}.") await state.finish()
### Расходы ### ############### #%% Создаем сообщение. raw_message = 'Бананы - 150' # Проверка на наличие такого продукта в БД. product = DBMS.product_exist(raw_message) # Если БД пустая, то вернётся товар с полем category=None. print(product) #%% Добавляем категорию для данного товара в его поле. product.category = 'Продукты' # И записываем её в БД. # При записи также добавится сам товар и расход по нему. DBMS.add_category(product) #%% Ещё пример. raw_message = 'Бензин - 1000' product = DBMS.product_exist(raw_message) if not product.category: product.category = 'Автомобиль' DBMS.add_category(product) #%% Если категория данного товара нам уже известа, # метод product_exist добавит новый расход по данному товару в БД, # и вернёт товар с его категорией (category='Продукты'). raw_message = 'Бананы - 150' product = DBMS.product_exist(raw_message)