Список id и username пользователей sqlite3 для telebot

System

Новичок
Пользователь
Мар 11, 2022
14
0
1
Нужно создать в таблице 2 столбца с id и username пользователя. Написал код в файле с БД:
Python:
def add_user(self, chat_id):
        with self.connection:
            return self.cursor.execute("INSERT INTO `userchat` (`chat_id`, `username`) VALUES (?,?)", (chat_id, username))

при коде в основном файле:
Python:
db.add_user(message.from_user.id,)
выдает ошибку: NameError: name 'username' is not defined

Когда в основном файле изменяю тот же код, что вверху, на:
Python:
db.add_user(message.from_user.id,message.from_user.username,)

Выдает ошибку:
Python:
TypeError: Database.add_user() takes 2 positional arguments but 3 were given

Но следует в БД оставить только добавление chat_id и изменить в основном файле код на:
Python:
db.add_user(message.from_user.id)
db.add_user(,message.from_user.username)
Все работает, только код выводит данные в две строки, а не в одну, как можно решить проблему? Первый раз делаю бота, прошу заранее прощение
 

Selez

Новичок
Пользователь
Мар 11, 2022
11
3
3
в функции add_user нет переменной username, ты либо передавай ее в функцию либо создай внутри функции

UPD: измени объявление функции на
Код:
def add_user(self, chat_id, username):
и вызывай метод:
Код:
db.add_user(message.from_user.id,message.from_user.username)
 
Последнее редактирование:
  • Мне нравится
Реакции: System

System

Новичок
Пользователь
Мар 11, 2022
14
0
1
в функции add_user нет переменной username, ты либо передавай ее в функцию либо создай внутри функции

UPD: измени объявление функции на
Код:
def add_user(self, chat_id, username):
и вызывай метод:
Код:
db.add_user(message.from_user.id,message.from_user.username)
Cпасибо, помогло!
 

Форум IT Специалистов