From 993074d78d36875f984b5c2a53ef8a2547d392b5 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 7 Apr 2015 10:45:31 -0400 Subject: [PATCH] [1.8.x] Fixed #24429 -- Doc'ed that Django 1.8 doesn't require an integer PK for custom user models. Backport of 981e3b9394022810bd536474344e2f91c190b858 from master --- 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 6a56d542d3..954366b6d2 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -479,19 +479,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