# settings.py INSTALLED_APPS = ( # ... 'substitution_user', ) MIDDLEWARE_CLASSES = ( # ... 'substitution_user.middleware.SubstitutionUserMiddleware', ) # urls.py urlpatterns = patterns('', # ... url(r'^substitution_user/', include('substitution_user.urls')), ) # someapp/admin.py # ... from django.contrib.auth import get_user_model from django.contrib.auth.admin import UserAdmin as UserAdminBase from substitution_user.admin import SubstitutionUserAdminMixin # ... @admin.register(get_user_model()) class UserAdmin(SubstitutionUserAdminMixin, UserAdminBase): pass # template {% load substitution_user %} {% substitution_user_get_real_user as real_user %} {% if real_user != request.user %} <a href="{% url 'substitution_user_turn_off' %}">{{ request.user.username }} [{{ real_user.username }}]</a> {% else %} <a href="{% url 'logout' %}">{{ request.user.username }}</a> {% endif %}