from django.db import models
import time
from django.contrib.auth.models import User
from allauth.account.signals import user_signed_up, password_set
from django.db.models.signals import post_save
from django.dispatch import receiver, Signal
@receiver(user_signed_up)
def employeeID(sender, **kwargs):
# username = kwargs['request'].user.username
username = kwargs['user'].username
u = User.objects.get(username = username)
u.username = str(time.time()).split('.')[0]
u.save()
# Create your models here.
# @receiver(user_signed_up)
# def employeeID(sender=User, **kwargs):
# old_username = kwargs['username']
# user = User.objects.get(username = old_username)
# user.username = str(time.time()).split('.')[0]
# user.save()
# @receiver(user_signed_up)
# # def employeeID(request, user, sociallogin=None, **kwargs):
# def employeeID(sender, **kwargs):
# print('signal received')
# old_username = kwargs.username
# user = User.objects.get(username = old_username)
# user.username = str(time.time()).split('.')[0]
# user.save()
# @receiver(user_signed_up)
# def employeeID(sender, **kwargs):
# request = kwargs['request']
# user = kwargs['user']
# # Do your stuff with the user
# username = request.user.username
# u = User.objects.get(username = username)
# u.username = str(time.time()).split('.')[0]
# u.save()
# @receiver(user_signed_up)
# def employeeID(sender=User, **kwargs):
# request = kwargs['request']
# user = kwargs['user']
# # Do your stuff with the user
# username = request.user.username
# u = User.objects.get(username = username)
# u.username = str(time.time()).split('.')[0]
# u.save()
# @receiver(user_signed_up, sender=User)
# def employeeID(sender=User, **kwargs):
# username = kwargs['request'].user.username
# # username = kwargs['user'].username
# print(username)
# u = User.objects.get(username = username)
# u.username = str(time.time()).split('.')[0]
# u.save()
# @receiver(user_signed_up)
# def employeeID(request, user, **kwargs):
# # username = kwargs['request'].user.username
# username = kwargs['user'].username
# print(username)
# u = User.objects.get(username = username)
# u.username = str(time.time()).split('.')[0]
# u.save()
Django version: 2.0
Python 3.6.2
*user registration with email(without verification) and password
Goal : Change the django-allauth's auto generated username with my own right after they signup.
Issue: I am not really sure whether the signals are not working or coming, or something wrong with my code but I am unable to change the auto generated django allauth username with my own. I have also posted the various iterations of my attempts here (commented out). These are just a very few of so many iterations and attempts of my code from last few days. I have so far spent an entire friday+saturday to achieve this. I have referred the following resources and tried to mimick or adapt them to my use case but no go.
Django - User and User Profile form creating two profiles instead of one
How to populate user profile with django-allauth provider information?
IndexError, list index out of range. Django-allauth signals
django-allauth: how to properly use email_confirmed signal to set user to active
How to populate user profile with django-allauth provider information?
django django-allauth save extra_data from social login in signal