瀏覽代碼

Issue #2481 - Fix Python 3 compatibility issue in Table Browser Import.

Rick Bernotas 4 年之前
父節點
當前提交
61f2e76420
共有 2 個文件被更改,包括 18 次插入6 次删除
  1. 10 4
      apps/metastore/src/metastore/templates/components.mako
  2. 8 2
      apps/metastore/src/metastore/views.py

+ 10 - 4
apps/metastore/src/metastore/templates/components.mako

@@ -96,10 +96,16 @@
     if attributes is None:
       attributes = {}
     ret_str = ""
-    for key, value in attributes.iteritems():
-      if key == "klass":
-        key = "class"
-      ret_str += "%s='%s' " % (key.replace("_", "-"), unicode(value))
+    if sys.version_info[0] > 2:
+      for key, value in attributes.items():
+        if key == "klass":
+          key = "class"
+        ret_str += "%s='%s' " % (key.replace("_", "-"), str(value))
+    else:
+      for key, value in attributes.iteritems():
+        if key == "klass":
+          key = "class"
+        ret_str += "%s='%s' " % (key.replace("_", "-"), unicode(value))
     return ret_str
 
   if not attrs:

+ 8 - 2
apps/metastore/src/metastore/views.py

@@ -553,7 +553,10 @@ def load_table(request, database, table):
         }
         query_history = db.load_data(database, table.name, form_data, design, generate_ddl_only=generate_ddl_only)
         if generate_ddl_only:
-          last_executed = json.loads(request.POST.get('start_time'), '-1')
+          if sys.version_info[0] > 2:
+            last_executed = json.loads(request.POST.get('start_time'))
+          else:
+            last_executed = json.loads(request.POST.get('start_time'), '-1')
           job = make_notebook(
             name=_('Load data in %s.%s') % (database, table.name),
             editor_type=source_type,
@@ -590,7 +593,10 @@ def load_table(request, database, table):
            'database': database,
            'app_name': 'beeswax'
        }, force_template=True).content
-    response['data'] = popup
+    if sys.version_info[0] > 2:
+      response['data'] = popup.decode()
+    else:
+      response['data'] = popup
 
   return JsonResponse(response)