Closed Ethra8 closed 1 hour ago
After some research, I found that error comes from the fact that even if the following def in profiles.models creates a profile every time a user is created, this function does not create profile instances for previously created users:
class UserProfile(models.Model):
"""
A user profile model for maintaining default
delivery information and order history
"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
default_full_name = models.CharField(max_length=80, null=True, blank=True)
default_phone_number = models.CharField(max_length=20, null=True, blank=True)
default_street_address1 = models.CharField(max_length=80, null=True, blank=True)
default_street_address2 = models.CharField(max_length=80, null=True, blank=True)
default_town_or_city = models.CharField(max_length=40, null=True, blank=True)
default_postcode = models.CharField(max_length=20, null=True, blank=True)
default_country = CountryField(blank_label='Country', null=True, blank=True)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_or_update_user_profile(sender, instance, created, **kwargs):
"""
Create or update the user profile
"""
if created:
UserProfile.objects.create(user=instance)
# Existing users: just save the profile
instance.userprofile.save()
SOLUTION: Via the shell:
python manage.py shell
from django.contrib.auth.models import User
from your_app_name.models import UserProfile
for user in User.objects.all(): UserProfile.objects.get_or_create(user=user)
![Image](https://github.com/user-attachments/assets/092188db-73fa-40f3-954e-ca89abbe6918)
Once Profiles app created, access for previously created users (in this case, admin superuser) gives following error in debug=True mode: