I have a model called 'User profiles' that is a custom user, it takes a user in a OneToOneField and also has additional fields like 'age', 'is_teacher', 'is_location'.
My Problem is that when I create a normal user, this 'User Profiles' dosen't create a new User. How do I make that happen?
I know that I have to do something like this with a receiver (Where do I add the receiver?):
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=User)
def create_user_data(sender, update_fields, created, instance, **kwargs):
if created:
# Create your user data
pass
These are my models:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
age = models.IntegerField(default=18)
description = models.CharField(max_length=300)
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
def __str__(self):
return self.user.username