summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2013-02-15 09:00:55 +0800
committerRussell Keith-Magee <russell@keith-magee.com>2013-02-15 09:00:55 +0800
commitf5e4a699ca0f58818acbdf9081164060cee910fa (patch)
treee4cbef9c11d69c7d393dcf5533f6989a91928503 /django/core
parentf179a5198e05e1be8ba8be87c1f0e1a8924cf005 (diff)
Fixed #19822 -- Added validation for uniqueness on USERNAME_FIELD on custom User models.
Thanks to Claude Peroz for the draft patch.
Diffstat (limited to 'django/core')
-rw-r--r--django/core/management/validation.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/core/management/validation.py b/django/core/management/validation.py
index f49a3c2232..587d3a0ad7 100644
--- a/django/core/management/validation.py
+++ b/django/core/management/validation.py
@@ -49,12 +49,16 @@ def get_validation_errors(outfile, app=None):
# No need to perform any other validation checks on a swapped model.
continue
- # This is the current User model. Check known validation problems with User models
+ # If this is the current User model, check known validation problems with User models
if settings.AUTH_USER_MODEL == '%s.%s' % (opts.app_label, opts.object_name):
# Check that the USERNAME FIELD isn't included in REQUIRED_FIELDS.
if cls.USERNAME_FIELD in cls.REQUIRED_FIELDS:
e.add(opts, 'The field named as the USERNAME_FIELD should not be included in REQUIRED_FIELDS on a swappable User model.')
+ # Check that the username field is unique
+ if not opts.get_field(cls.USERNAME_FIELD).unique:
+ e.add(opts, 'The USERNAME_FIELD must be unique. Add unique=True to the field parameters.')
+
# Model isn't swapped; do field-specific validation.
for f in opts.local_fields:
if f.name == 'id' and not f.primary_key and opts.pk.name == 'id':