@Yung_Cod3r

Возникает ошибка matching query does not exist?

main.py:

import telebot
from models import *


bot = telebot.TeleBot("")
keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard1.row("")
keyboard2 = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard2.row("Проверить переходы")
ref_link = 'https://t.me/{}?start={}'


@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.chat.id
    splited = message.text.split()
    if not Users.user_exists(user_id):
        Users.create_user(user_id)
        if len(splited) == 2:
            Users.increase_ref_count(splited[1])
    bot.send_message(message.chat.id, "", reply_markup=keyboard1)

@bot.message_handler(func=lambda message: message.text.lower() == "" or message.text.lower() == "", content_types=['text'])
def otveti(message):
        bot_name = bot.get_me().username
        bot.send_message(message.chat.id, "Чтобы получить, тебе нужно пригласить 5 человек по твоей ссылке!" + ref_link.format(bot_name, message.chat.id), reply_markup=keyboard2)

@bot.message_handler(func=lambda message: message.text.lower() == "проверить переходы", content_types=['text'])
def check_members(message):
        count = Users.get_ref_count(message.chat.id)
        if count >= 5:
            bot.send_message(message.chat.id, "Отлично! Совсем скоро ответы будут!")
        elif count < 5:
            bot.send_message(message.chat.id, "Вам ещё не хватает приглашённых!" + "\n" + f'Вы пригласили: {count}')


if __name__ == "__main__":
    bot.polling(none_stop=True)


models.py:

from peewee import *

db = SqliteDatabase('Users.db')

class BaseModel(Model):
    class Meta:
        database = db

class Users(BaseModel):
    user_id = IntegerField(unique=True)
    ref = IntegerField(default=0)

    @classmethod
    def get_user(cls, user_id):
        return cls.get(user_id == user_id)
    
    @classmethod
    def get_ref_count(cls, user_id):
        return cls.get(user_id).ref
    
    @classmethod
    def increase_ref_count(cls, user_id):
        user = cls.get_user(user_id)
        user.ref += 1
        user.save()
    
    @classmethod
    def user_exists(cls, user_id):
        query = cls().select().where(cls.user_id == user_id)
        return query.exists()
    
    @classmethod
    def create_user(cls, user_id):
        user, created = cls.get_or_create(user_id = user_id)


Всё работает отлично, но на этапе когда нужно выдать кол-во рефералов выдаёт ошибку:
matching query does not exist
params = [816058210, 1, 0]
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы