Django newbie here stumbling my way around the docs. I’m trying to create a user profile using Django’s “UserProfiles”, but I’m having a little trouble with figuring out the proper way to set the code based on Django docs.
Here’s my code, based on the docs. (The create_user_profile is 100% from the docs).
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class UserProfile(models.Model):
user = models.OneToOneField(User)
location = models.CharField(max_length = 100)
website = models.CharField(max_length=50)
description = models.CharField(max_length=255)
fullName = models.CharField(max_length=50)
email = models.EmailField(max_length = 100, blank = False)
created = models.DateTimeField(auto_now_add=True)
private = models.BooleanField()
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
What’s the -proper- way to set and save these fields?
For example, if I have both the User and UserProfile models in one form (in a registration form, for example), how would I first create, then update all of this, before finally saving?
These aren’t separate steps. When you create or update a record in Django, you are saving it to the database.
For the registration form, I’d recommend you set it up as a
ModelFormonUserrecords, then specify the additional fields you want to save to the profile and save them separately in the save function, like so…