Aiogram 3.1.1动态StatesGroup实现可行性咨询
动态创建Aiogram 3.1.1状态实现问卷处理器的问题
我所在的公司主营企业电报机器人开发,技术栈以Django/Aiogram 3.1.1为主。目前遇到一个棘手任务,特向大家咨询实现可能性。
任务说明
数据库中有三类核心表:
- 问卷表(包含title字段)
- 关联问题名称与验证类型(数字、姓名、邮箱等)的表
- 关联用户与问卷答案的表
我的目标是开发一个问卷问题填写处理器。原本可以通过静态方式实现:
静态StatesGroup定义
class QuestionsStates(StatesGroup): email = State() phone_number = State() full_name = State() # . . .
对应状态处理器
@router.message(QuestionsStates.last_state) async def send_data_to_backend(message: Message, state: FSMContext): user_answers = await state.get_data() # user_answer.get('') # send all data with user_id to backend # . . .
但这种静态方案无法适配需求变化:问卷的问题可能变更、验证类型可能修改、部分问题可能删除等。
核心问题
能否在Aiogram 3.1.1中实现动态状态的创建?
我有一个初步想法但不确定是否可行,也想了解其他实现思路:
初步思路代码
async def get_anketa_questions(): questions_response = await django_get_questions() for data in questions_response: State(state=data.get('name')) # 不确定这段代码是否可行
期待各位的建议与帮助,感谢!
内容的提问来源于stack exchange,提问作者Leonid
相关产品推荐
相关产品推荐

