I am trying to create a django project with a custom model that has two diffrent user profiles.it seems to have set a default profile i want to be able to choose one profile from a user

20 views
Skip to first unread message

Andrew Korir

unread,
Mar 28, 2018, 4:06:59 PM3/28/18
to Django users
from django.db import models
from django.contrib.auth.models import AbstractUser,UserManager
from django.db.models.signals import post_save
from django.dispatch import receiver

# Create your models here.

class CustomUserManager(UserManager):
pass

class CustomUser(AbstractUser):
pass

class LecProfile(models.Model):
LECTURER = 1
MANAGEMENT = 2
ROLE_CHOICES = (
(LECTURER, 'lecturer'),
(MANAGEMENT, 'management'),
)
role= models.PositiveSmallIntegerField(choices=ROLE_CHOICES,null=True,blank=True)
user = models.OneToOneField(CustomUser,on_delete=models.CASCADE,null=True, related_name='lec_profile')
Employee_no = models.CharField(max_length=100)
Department = models.CharField(max_length=100)
Unit = models.CharField(max_length=100)
lec_image = models.FileField(upload_to='profile_image',blank=True)

def __str__(self):
return self.user.username

@receiver(post_save, sender=CustomUser)
def create_or_update_lec_profile(sender, instance, created, **kwargs):
if created:
LecProfile.objects.create(user=instance)
instance.lec_profile.save()

class UserProfile(models.Model):
STUDENT = 1
STUDENT_REP = 2
ROLE_CHOICES = (
(STUDENT, 'student'),
(STUDENT_REP, 'student_rep'),
)
role= models.PositiveSmallIntegerField(choices=ROLE_CHOICES,null=True,blank=True)
user = models.OneToOneField(CustomUser,on_delete=models.CASCADE,null=True, related_name='user_profile')
reg_no = models.CharField(max_length=100)
year = models.CharField(max_length=100)
course = models.CharField(max_length=100)
your_image = models.FileField(upload_to='profile_image1',blank=True)

def __str__(self):
return self.user.username

@receiver(post_save, sender=CustomUser)
def create_or_update_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
instance.user_profile.save()
issue.png
Reply all
Reply to author
Forward
0 new messages