Opened 12 years ago
Last modified 12 years ago
#19354 closed Bug
Unable to set PK for custom user model — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | contrib.auth | Version: | 1.5-alpha-1 |
Severity: | Normal | Keywords: | PK Primary Key Custom User |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
Hello,
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
Regards,
Mark