Commit 22242c51 authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #16929 - Documented how to extend UserAdmin with UserProfile fields;...

Fixed #16929 - Documented how to extend UserAdmin with UserProfile fields; thanks charettes for the draft example.
parent 55358395
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -650,6 +650,36 @@ the handler, if ``created`` is ``True``, create the associated user profile::
.. seealso:: :doc:`/topics/signals` for more information on Django's signal
    dispatcher.

Adding UserProfile fields to the admin
--------------------------------------

To add the UserProfile fields to the user page in the admin, define an
:class:`~django.contrib.admin.InlineModelAdmin` (for this example, we'll use a
:class:`~django.contrib.admin.StackedInline`) in your app's ``admin.py`` and
add it to a ``UserAdmin`` class which is registered with the
:class:`~django.contrib.auth.models.User` class::

    from django.contrib import admin
    from django.contrib.auth.admin import UserAdmin
    from django.contrib.auth.models import User

    from my_user_profile_app.models import UserProfile

    # Define an inline admin descriptor for UserProfile model
    # which acts a bit like a singleton
    class UserProfileInline(admin.StackedInline):
        model = UserProfile
        can_delete = False
        verbose_name_plural = 'profile'

    # Define a new User admin
    class UserAdmin(UserAdmin):
        inlines = (UserProfileInline, )

    # Re-register UserAdmin
    admin.site.unregister(User)
    admin.site.register(User, UserAdmin)

Authentication in Web requests
==============================