Skip to content

Instantly share code, notes, and snippets.

@mthri
Last active March 27, 2020 23:28
Show Gist options
  • Save mthri/e901604cb402d5a021b981ab1c06a195 to your computer and use it in GitHub Desktop.
Save mthri/e901604cb402d5a021b981ab1c06a195 to your computer and use it in GitHub Desktop.
Extend User class in django

Extend User class in django

Notic :

If you have foreign key in new filds,must allow null(like below) or set default value else don't work

from django.db.models.signals import post_save
from django.dispatch import receiver

class Role(models.Model):
    RoleID = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=10)

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    country_code = models.IntegerField(null=True) 
    roleID = models.ForeignKey(Role, models.SET_NULL ,null=True)

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment