Unable to set PK for custom user model
|Reported by:||Owned by:||nobody|
|Severity:||Normal||Keywords:||PK Primary Key Custom User|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Description (last modified by )
I've written a custom user model, and wished to set a field as the primary key. See the example below.
class User(AbstractBaseUser): email = models.EmailField(_('email'), max_length=75, unique=True, primary_key=True) USERNAME_FIELD = 'email' ...
Registering the user works fine, but when I authenticate the user using django.contrib.auth.views.login, I get an error stating that the 'User' object has no attribute 'id'.
I discussed this on IRC, where it was suggested to report this as a bug. We believe it is desirable to use .pk instead, for reasons related to portability.
A quick search has shown that there are 12 instances of 'user.id'.
Here's a summary of the error report:
Exception Type: AttributeError Exception Value: 'User' object has no attribute 'id' Exception Location: <path>/lib/python2.6/site-packages/django/contrib/auth/__init__.py in login, line 84 Python Executable: <path>/bin/python Python Version: 2.6.5