2đź‘Ť
Edit: After looking on the full error message I can see the error is not solely related to extending User. The error happens when rendering checkboxes and corresponding labels that are used to assign prints to UserProfile you are editing/adding. Django admin is calling Print.__unicode__ for rendering label for each Print instance, which in turn access (on line 33 of /threedee/website/models.py) the Print’s “printer” attribute which is a foreign key to User. And for some reason one of the Prints does have invalid printer value which doesn’t point to any User.
Can’t really tell what is really happening here without seeing the Print model, I recommend you checking the Print database table (should be named website_print) and find if there is anything unusual (are you using PostgreSQL?). If you are not having any important data there, truncating whole Print table should do the trick.
This is my old answer which you should still follow but it’s not related to the error you are experiencing:
I would just comment on others answers but there doesn’t seem to be a way of doing that for me. You need to combine both Alexey Sidorov’s and Like it’s answers:
First use django shell to create UserProfile instances for existing users – just run commads provided by Like it’s answer in the shell (python manage.py shell).
After that you should setup signal that will automatically create UserProfile for each new user according to answer from alexey-sidorov.
1đź‘Ť
Add this to models.py, after UserProfile class.
from django.db.models.signals import post_save
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
more info https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
- [Django]-Creating custom list filter in django
- [Django]-Django settings.py Error: Import by filename is not supported
1đź‘Ť
Add UserProfile entry for you existing users:
from django.contrib.auth.models import User
from website.models import UserProfile
for user in User.objects.all():
profile = UserProfile.objects.get_or_create(user = user)
and create profile for new user as well.
use signals for what.
- [Django]-How can I create sophisticated Django Model Validation for Django Admin?
- [Django]-How to prevent Django Rest Framework from validating the token if 'AllowAny' permission class is used?
- [Django]-How to fix "TemplateDoesNotExist at /admin/login/django/forms/widgets/text.html" error in Django??'