Задать вопрос

Как сделать из int str?

async def register(self, user):
        async with self.pool.acquire() as conn:
            async with conn.cursor() as cur:
                result = await cur.execute("SELECT * FROM profile WHERE uid=%s", user.id)
                row = await cur.fetchall()
                if result == 0:
                    await cur.execute("INSERT INTO profile VALUES( CAST(admin as text))")
                else:
                    return row


Как сделать поле Admin(int) в str, что бы место цыфр ролей были нормальные роли, как (Участник, Хелпер, Админ, Модератор), а не 1, 2, 3, 4
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Простой 1 комментарий
Решение пользователя shurshur К ответам на вопрос (2)
shurshur
@shurshur
Сисадмин, просто сисадмин...
Ну вот у тебя в row набор значений из базы по uid=..., тебе нужно взять то что тебе нужно и отобразить в названия ролей. Например, с помощью словаря, в котором каждому числовому значению присвоено своё строковое:

my_awesome_dict = {
    1: "Первый",
    2: "Второй",
    10: "Десятый".
}

print (my_awesome_dict[admin])


Зачем там дальше делается неправильный insert? Он же просто вернёт ошибку, так как в запросе нет никакого admin, чтобы вставить в таблицу.
Ответ написан