14446
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
Потому что where(id==123) эквивалентно where(False)
оно и просто с id работает. но все равно подчеркивает
Читать полностью…
потому что у него коммит именно тут,а ты его вырезал
Читать полностью…
Непонятно где выставляется этот user_id.. Такое ощущение что create не обновляет его
Читать полностью…
async def get_user(self) -> UserModel | None:Читать полностью…
query = select(User).filter_by(id=self.user_id)
result = await self.session.execute(query)
result = result.first()
return UserModel.from_list(result)
Как выглядит get_user? У тебя реально всегда одна запись в БД, или как он определяет какую взять?
Читать полностью…
так как чат называется python begineers я бы для начала посоветовал разбить эту огромную функцию на 2-3
Читать полностью…
скорее всего там используется self.user_id чтобы идентифицировать пользователя 😭
Читать полностью…
if user.username != username:
await self.update_table('username', username)
...
if not user:Читать полностью…
return
filter_by(id=123) работает, where(id==123) нет
Так всё что я вырезал нужно, а не только коммит, но в другом месте.
Читать полностью…
я сказал, что коммит нужен если не автоматический
Читать полностью…
Это больше всего смущает
Ещё то что ты используешь create как update. По идее они должны вызываться в разных местах
может у него там в классе он хранится ,что обрабатывается 😂😂
Читать полностью…
Судя по get_user() без параметров только один, или чего-то не понимаю?
Читать полностью…
async def create_user(self, username: str | None, name: str) -> UserModel:
user = await self.get_user()
name = slugify(
name,
allow_unicode=True,
lowercase=False,
separator=' '
)
if name.isspace() or len(name) < 1:
name = username or str(self.user_id)
if not user:
query = insert(User).values(id=self.user_id, name=name, username=username)
await self.session.execute(query)
await self.session.commit()
return await self.get_user()
if not user.username == username:
await self.update_table('username', username)
if not user.name == name:
await self.update_table('name', name)
return await self.get_user()