• Почему django DateInput не локализуется, хотя SelectDateWidget рядом локализуется?

    kendyland
    @kendyland
    class ProjectForm(forms.ModelForm):
        start_date = forms.DateField(
            widget=SelectDateWidget(
                empty_label=("Choose Year", "Choose Month", "Choose Day"),
                attrs={'class': 'date-select'},
            )
        )
    
        end_date = forms.DateField(
            widget=forms.DateInput(
                attrs={"type": "date", 'class': 'date-input'},
            )
        )
    
        class Meta:
            model = YourModel
            fields = ['start_date', 'end_date']
    Ответ написан
  • Телеграмм-бот не ждет ответа, а выводит все сразу что делать?

    kendyland
    @kendyland
    дело в том что ты вызываешь bot.register_next_step_handler в цикле for и каждый раз когда цикл создает новую клавиатуру и вызывает bot.send_message он также регестрирует нект степ хендлер. Это приводит к тому, что любое сообщение юзера бот запускает все циклы

    короче, мне лень было это писать самому, поэтому я попросилл чат жпт реворкнуть архитектуру и он накидал вот это

    @bot.message_handler(content_types=['text'])
    def start_test(message):
        if message.text == 'Начать тест':
            user_data = {
                'user_score': 0,
                'user_num': 1
            }
            ask_question(message, user_data)
    
    def ask_question(message, user_data):
        num = user_data['user_num']
        if num > 5:
            # Завершаем тест
            bot.send_message(message.chat.id, f'Тест завершен. Ваш счет: {user_data["user_score"]}')
            return
    
        quest = get_quest(num)
        answers = get_answers(num).split('|')
        answers.sort()
    
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        for j in answers:
            btn = types.KeyboardButton(j)
            markup.add(btn)
    
        mess = f"<b>{num}. {quest}</b>\n\nA.{answers[0]}\n\nB.{answers[1]}\n\nC.{answers[2]}\n\nD.{answers[3]}"
        bot.send_message(message.chat.id, mess, reply_markup=markup, parse_mode='html')
    
        user_data['user_num'] += 1
        bot.register_next_step_handler(message, check_answer, user_data)
    
    def check_answer(message, user_data):
        right = get_right(user_data['user_num'])
        if message.text == right:
            user_data['user_score'] += 1
        bot.send_message(message.chat.id, 'Идем дальше')
        ask_question(message, user_data)
    Ответ написан
    Комментировать