#python #django #aiogram
Вопрос:
Я пытаюсь использовать django admin для администрирования своего бота для телеграмм. У меня есть асинхронная функция под названием рассылка, как я могу запустить эту функцию в действиях администратора django? Я могу синхронизировать его, но я не знаю, как сделать паузу, чтобы мой бот не был забанен, когда он отправит много массажей, и продолжит отвечать пользователям.
Это мой первый вопрос о Stackowerflow. Извините за мой английский.
admins.py @admin.action(description='mailing') def mailing(modeladmin, request, queryset): pass @admin.register(Publish) class PublishAdmin(admin.ModelAdmin): list_display = ('name', 'created_at') actions = [mailing] async def mailing_start(text, url, user_id=None): users = db.select_user_list() count = 0 receivers_count = 0 markup = '' if url: pass #markup = await create_link_button(url) for user in users: try: if user_id != user[0]: if url: await bot.send_message(user[0], text, reply_markup=markup) else: await bot.send_message(user[0], text) count = 1 if count == 18: await asyncio.sleep(3) count = 0 receivers_count = 1 except Exception as err: print(f'id - {user[0]}, bot is stopped n{err}') receivers_count -= 1 return f'{emoji.emojize(":white_check_mark:", use_aliases=True)}, ' f'message recieved {receivers_count}'