user = result.scalar()
if user is None:
referrer = None
if event.chat.type == 'private' and event.text == start_message:
referrer = event.text
user = Users(
user_id=event.from_user.id,
user_name=event.from_user.username,
referrer=referrer
)
await session.merge(user)
@dp.message(CommandStart())
async def cmd_start(message, command):
# а command.args будет твой referrer
Я могу проверять что-то на сервере, но что именно?это давно поборено у платежных систем, подписывай передаваемые данные, тогда изменение любого параметра, приведет к несовпадению подписей
в транзакциях ничего не понимаю(ну сначала садись и разбирайся, в доках всё расписано. Как ты дальше хочешь поддерживать код, который не понимаешь?
в любой момент времени все успешно, или никаких измененийоберни этот участок в
with transaction.atomic():
Допустим я считаю, когда собрал на ее основе какой-либо проект и можешь в принципе свободно без документации получать на ее основе исходный продукт/приложение и т.д .ну так и пиши что именно ты сделал на этой технологии, а про "без документации" - так не бывает, даже если очень хорошо зная что-то, я всегда обращаюсь к документации, нет смысла ее вызубривать.