code: def _get_django_sites():
      
      deployed = version_state('deploy_project')
      if not env.sites and 'django.contrib.sites' in env.INSTALLED_APPS and deployed:
          with cd('/'.join([deployment_root(),'env',env.project_fullname,'project',env.project_package_name,'sitesettings'])):
              venv = '/'.join([deployment_root(),'env',env.project_fullname,'bin','activate'])
              #since this is the first time we run ./manage.py on the server it can be
              #a point of failure for installations
              with settings(warn_only=True):
                  output = run(' '.join(['source',venv,'&&',"django-admin.py dumpdata sites --settings=%s.sitesettings.settings"% env.project_package_name]))
  
                  if output.failed:
                      print "ERROR: There was an error running ./manage.py on the node"
                      print "See the troubleshooting docs for hints on how to diagnose deployment issues"
                      if hasattr(output, 'stderr'):
                          print output.stderr
                      sys.exit(1)
              output = output.split('\n')[-1] #ignore any lines prior to the data being dumped
              sites = json.loads(output)
              env.sites = {}
              for s in sites:
                  env.sites[s['pk']] = s['fields']['domain']
      return env.sites
docs: Get a list of sites as dictionaries {site_id:'domain.name'}