From 981e3b9394022810bd536474344e2f91c190b858 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 7 Apr 2015 10:45:31 -0400 Subject: [PATCH] Fixed #24429 -- Doc'ed that Django 1.8 doesn't require an integer PK for custom user models. --- docs/topics/auth/customizing.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index a3577ffb108..cc7a326c233 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -477,19 +477,22 @@ Specifying a custom User model Django expects your custom User model to meet some minimum requirements. -1. Your model must have an integer primary key. - -2. Your model must have a single unique field that can be used for +#. Your model must have a single unique field that can be used for identification purposes. This can be a username, an email address, or any other unique attribute. -3. Your model must provide a way to address the user in a "short" and +#. Your model must provide a way to address the user in a "short" and "long" form. The most common interpretation of this would be to use the user's given name as the "short" identifier, and the user's full name as the "long" identifier. However, there are no constraints on what these two methods return - if you want, they can return exactly the same value. +.. versionchanged:: 1.8 + + Older versions of Django required your model to have an integer primary + key as well. + The easiest way to construct a compliant custom User model is to inherit from :class:`~django.contrib.auth.models.AbstractBaseUser`. :class:`~django.contrib.auth.models.AbstractBaseUser` provides the core