from __future__ import annotations from django.db import transaction from allauth.account.adapter import DefaultAccountAdapter from apps.users.models import UserWallet class CmhubAccountAdapter(DefaultAccountAdapter): def save_user(self, request, user, form, commit=True): with transaction.atomic(): saved_user = super().save_user(request, user, form, commit=commit) if commit: UserWallet.objects.get_or_create( user=saved_user, defaults={"points_balance": 0}, ) return saved_user