Многоуровневое условие aiogram_python
Помогите пожалуйста, мне надо чтобы если юзер выбираете "Москва" тогда переход на состояние "rayon", а если выбирает "Другое" тогда переход на состояние "adress".
Пока код у меня такой, но условие не работает
@router.message(Reg.region)
async def reg_twelve(message: types.Message, state: FSMContext):
if message.text not in ["Москва","Другое"]:
await message.answer("Выбрать из кнопок:", reply_markup=kb.region)
else:
await state.update_data(region=message.text)
if message.text == "Москва":
await state.set_state(Reg.rayon)
elif message.text == "Другое":
await state.set_state(Reg.adress)
await message.answer("Выбрать из кнопок:", reply_markup=kb.rayon)
@router.message(Reg.rayon)
async def reg_threeteen(message: types.Message, state: FSMContext):
await state.update_data(rayon=message.text)
await state.set_state(Reg.adress)
await message.answer("Выбрать из кнопок:",reply_markup=kb.otmena)
@router.message(Reg.adress)
async def reg_threeteen(message: types.Message, state: FSMContext):
await state.update_data(adress=message.text)
await state.set_state(Reg.languages)
await message.answer("Выбрать из кнопок:",reply_markup=kb.otmena)
Ответы (1 шт):
Автор решения: QWERTYZ PB
→ Ссылка
@router.message(Reg.region)
async def reg_twelve(message: types.Message, state: FSMContext):
if message.text.lower() not in ["москва","другое"]:
await message.answer("Выбрать из кнопок:", reply_markup=kb.region)
else:
await state.update_data(region=message.text)
if message.text.lower() == "москва":
await state.set_state(Reg.rayon)
elif message.text.lower() == "другое":
await state.set_state(Reg.adress)
await message.answer("Выбрать из кнопок:", reply_markup=kb.rayon)
попробуй использовать
.lower()
которая сделает все слово в нижний регистр. Возможно поэтому условие не сработало.
p.s. Не тестил. Напиши если не будет работать, помогу ещё