diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2013-02-15 09:00:55 +0800 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2013-02-15 09:00:55 +0800 |
| commit | f5e4a699ca0f58818acbdf9081164060cee910fa (patch) | |
| tree | e4cbef9c11d69c7d393dcf5533f6989a91928503 /django/core | |
| parent | f179a5198e05e1be8ba8be87c1f0e1a8924cf005 (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.py | 6 |
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': |
