diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index 141f710bfd..a0dc59c718 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -3,7 +3,7 @@ from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm from django import oldforms from django.shortcuts import render_to_response from django.template import RequestContext -from django.contrib.sites.models import Site +from django.contrib.sites.models import Site, RequestSite from django.http import HttpResponseRedirect from django.contrib.auth.decorators import login_required from django.contrib.auth import REDIRECT_FIELD_NAME @@ -27,10 +27,16 @@ def login(request, template_name='registration/login.html'): else: errors = {} request.session.set_test_cookie() + + if Site._meta.installed: + current_site = Site.objects.get_current() + else: + current_site = RequestSite(self.request) + return render_to_response(template_name, { 'form': oldforms.FormWrapper(manipulator, request.POST, errors), REDIRECT_FIELD_NAME: redirect_to, - 'site_name': Site.objects.get_current().name, + 'site_name': current_site.name, }, context_instance=RequestContext(request)) def logout(request, next_page=None, template_name='registration/logged_out.html'): diff --git a/docs/authentication.txt b/docs/authentication.txt index 0f96504c74..7860b59d7d 100644 --- a/docs/authentication.txt +++ b/docs/authentication.txt @@ -436,7 +436,10 @@ template context variables: * ``next``: The URL to redirect to after successful login. This may contain a query string, too. * ``site_name``: The name of the current ``Site``, according to the - ``SITE_ID`` setting. See the `site framework docs`_. + ``SITE_ID`` setting. If you're using the Django development version and + you don't have the site framework installed, this will be set to the + value of ``request.META['SERVER_NAME']``. For more on sites, see the + `site framework docs`_. If you'd prefer not to call the template ``registration/login.html``, you can pass the ``template_name`` parameter via the extra arguments to the view in