diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 62aa96a..9e88581 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -755,13 +755,19 @@
         for node in Node.objects.all():
             deployment_nodes.append( (node.deployment.id, node.id, node.name) )
 
+        sites = {}
+        for site in Site.objects.all():
+            sites[site.id] = site.login_base 
+        
         context["deployment_nodes"] = deployment_nodes
+        context["sites"] = sites
 
         return super(SliceAdmin, self).render_change_form(request, context, add, change, form_url, obj)
 
     def formfield_for_foreignkey(self, db_field, request, **kwargs):
         if db_field.name == 'site':
             kwargs['queryset'] = Site.select_by_user(request.user)
+            kwargs['widget'] = forms.Select(attrs={'onChange': "update_slice_name(this, $($(this).closest('div')[0]).find('.field-name input')[0].id)"}) 
 
         return super(SliceAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
diff --git a/planetstack/templates/admin/core/slice/change_form.html b/planetstack/templates/admin/core/slice/change_form.html
index c94b580..e97364b 100644
--- a/planetstack/templates/admin/core/slice/change_form.html
+++ b/planetstack/templates/admin/core/slice/change_form.html
@@ -8,6 +8,13 @@
 {% endfor %}
 ];
 
+sites = [
+{% for s in sites %}
+  [{{ s.0 }}, {{ s.1 }}],
+{% endfor %}
+];
+ 
+
 function update_nodes(deployment_select, node_select_id) {
     deployment_id = $(deployment_select).val();
     html = "<option value=''>---------</option>\n";
@@ -20,6 +27,15 @@
     //console.log(html);
     $("#"+node_select_id).empty().append(html);
 }
+
+function update_slice_prefix(site_select, slice_name_id) {
+    site_id = $(site_select).val();
+    slice_prefix="";
+    if (site_id in sites) {
+        slice_prefix=sites[site_id]+"_";
+    }
+    $("#"+slice_name_id).val(slice_prefix); 
+}
 </script>
 
 {% endblock %}
