Kaynağa Gözat

导入阿拉伯语

peng 1 yıl önce
ebeveyn
işleme
d35ea8ea39
1 değiştirilmiş dosya ile 39 ekleme ve 5 silme
  1. 39 5
      controller/LangWord.py

+ 39 - 5
controller/LangWord.py

@@ -14,7 +14,7 @@
 from var_dump import var_dump
 import json
 from django.http import HttpResponse
-
+import xlrd
 from django.views.generic import TemplateView
 from django.views.decorators.csrf import csrf_exempt
 from django.utils.decorators import method_decorator
@@ -30,16 +30,17 @@ class LangWordView(TemplateView):
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         operation = kwargs.get('operation', None)
-        request_dict = json.loads(request.body.decode('utf-8'))
-        return self.validate(request_dict, operation)
+        # request_dict = json.loads(request.body.decode('utf-8'))
+        request_dict = request.POST
+        return self.validate(request, request_dict, operation)
 
     def get(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         request_dict = request.GET
         operation = kwargs.get('operation', None)
-        return self.validate(request_dict, operation)
+        return self.validate(request, request_dict, operation)
 
-    def validate(self, request_dict, operation):
+    def validate(self, request, request_dict, operation):
         response = ResponseObject()
         print('request_dict:', request_dict)
         print('operation:', operation)
@@ -65,6 +66,8 @@ class LangWordView(TemplateView):
                 return self.do_query(request_dict, response, userID)
             elif operation == 'reset':
                 return self.do_reset(request_dict, response, userID)
+            elif operation == 'add_new_lang':
+                return self.do_add_new_lang(request, request_dict, response, userID)
             else:
                 return response.json(414)
         else:
@@ -301,3 +304,34 @@ class LangWordView(TemplateView):
                 return response.json(10, "数据已重置")
         else:
             return response.json(404)
+
+    def do_add_new_lang(self, request, request_dict, response, userID):
+
+        file = request.FILES.get('file', None)
+        try:
+            data = file.read()
+            workbook = xlrd.open_workbook(file_contents=data)
+            worksheet = workbook.sheet_by_index(0)
+            ar_list = worksheet.col_values(1)
+            en_list = worksheet.col_values(2, 1)
+            lang_key_qs = LangKeyModel.objects.filter(type__in=(1, 3, 5, 7)).values('id', 'word_key')
+            now_time = int(time.time())
+            ar_result = []
+            err_key = []
+            for item in lang_key_qs:
+                try:
+                    ar = ar_list[en_list.index(item['word_key'])+1]
+                    ar_result.append(ar)
+                except ValueError:
+                    err_key.append(item['word_key'])
+                    continue
+                lang_val = LangValModel.objects.filter(la__id=27, lk__id=item['id'])
+                if lang_val.exists():
+                    lang_val.update(word_val=ar, updTime=now_time)
+                else:
+                    LangValModel.objects.create(lk_id=item['id'], la_id=27, word_val=ar, addTime=now_time, updTime=now_time)
+            print(ar_result)
+            print(err_key)
+            return response.json(0)
+        except Exception as e:
+            return response.json(404)