Index: django/trunk/django/contrib/sites/models.py
===================================================================
--- django/trunk/django/contrib/sites/models.py (revision 5823)
+++ django/trunk/django/contrib/sites/models.py (working copy)
@@ -1,16 +1,33 @@
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 
+SITE_CACHE = {}
+
 class SiteManager(models.Manager):
     def get_current(self):
+        """
+        Returns the current ``Site`` based on the SITE_ID in the
+        project's settings. The ``Site`` object is cached the first
+        time it's retrieved from the database.
+        """
         from django.conf import settings
         try:
             sid = settings.SITE_ID
         except AttributeError:
             from django.core.exceptions import ImproperlyConfigured
             raise ImproperlyConfigured("You're using the Django \"sites framework\" without having set the SITE_ID setting. Create a site in your database and set the SITE_ID setting to fix this error.")
-        return self.get(pk=sid)
+        try:
+            current_site = SITE_CACHE[sid]
+        except KeyError:
+            current_site = self.get(pk=sid)
+            SITE_CACHE[sid] = current_site
+        return current_site
 
+    def clear_cache(self):
+        """Clears the ``Site`` object cache."""
+        global SITE_CACHE
+        SITE_CACHE = {}
+
 class Site(models.Model):
     domain = models.CharField(_('domain name'), max_length=100)
     name = models.CharField(_('display name'), max_length=50)