|
@@ -20,7 +20,7 @@ from django.views.decorators.csrf import csrf_exempt
|
|
|
from django.utils.decorators import method_decorator
|
|
|
from object.ResponseObject import ResponseObject
|
|
|
from django.contrib.auth.hashers import make_password, check_password
|
|
|
-from model.models import UserModel, LangSetModel, LangAreaModel
|
|
|
+from model.models import UserModel, LangSetModel, LangAreaModel, LangValModel, LangKeyModel
|
|
|
import time
|
|
|
from object.TokenObject import TokenObject
|
|
|
|
|
@@ -53,6 +53,8 @@ class LangAreaView(TemplateView):
|
|
|
return self.do_delete(request_dict, response)
|
|
|
elif operation == 'query':
|
|
|
return self.do_query(request_dict, response, userID)
|
|
|
+ elif operation == 'export':
|
|
|
+ return self.do_export(request_dict, response, userID)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
else:
|
|
@@ -101,5 +103,54 @@ class LangAreaView(TemplateView):
|
|
|
return response.json(0)
|
|
|
|
|
|
def do_query(self, request_dict, response, userID):
|
|
|
- la_qs = LangAreaModel.objects.filter().values('lang','id')
|
|
|
- return response.json(0, list(la_qs))
|
|
|
+ la_qs = LangAreaModel.objects.filter().values('lang', 'id')
|
|
|
+ return response.json(0, list(la_qs))
|
|
|
+
|
|
|
+ def do_export(self, request_dict, response, userID):
|
|
|
+ id = request_dict.get('id', None)
|
|
|
+ type = request_dict.get('type', None)
|
|
|
+ # key_list = LangKeyModel.objects.filter().values_list('word_key', flat=True)
|
|
|
+ en_qs = LangKeyModel.objects.filter(langvalmodel__la__id=9).values('word_key', 'langvalmodel__word_val')
|
|
|
+ en_kv = {}
|
|
|
+ for e in en_qs:
|
|
|
+ en_kv[e['word_key']] = e['langvalmodel__word_val']
|
|
|
+ res_qs = LangKeyModel.objects.filter(langvalmodel__la__id=id).values('word_key', 'langvalmodel__word_val')
|
|
|
+ res = {}
|
|
|
+ for r in res_qs:
|
|
|
+ res[r['word_key']] = r['langvalmodel__word_val'] if r['langvalmodel__word_val'] else en_kv[r['word_key']]
|
|
|
+ content = ''
|
|
|
+ if type == 'ios':
|
|
|
+ for l in res:
|
|
|
+ content = content + '"' + l + '"="' + res[l] + '";\n'
|
|
|
+ elif type == 'android':
|
|
|
+ for l in res:
|
|
|
+ content = content + '<string name="' + l + '">' + res[l] + '</string>\n'
|
|
|
+ from django.http import StreamingHttpResponse
|
|
|
+ response = StreamingHttpResponse(content)
|
|
|
+ response['Content-Type'] = 'application/octet-stream'
|
|
|
+ response['Content-Disposition'] = 'attachment;filename="lang.txt"'
|
|
|
+ return response
|
|
|
+ return response.json(0, res)
|
|
|
+
|
|
|
+
|
|
|
+from django.http import StreamingHttpResponse
|
|
|
+
|
|
|
+
|
|
|
+class exportLangView(TemplateView):
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = json.loads(request.body.decode('utf-8'))
|
|
|
+ return self.validate(request_dict)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.GET
|
|
|
+ return self.validate(request_dict)
|
|
|
+
|
|
|
+ def validate(self, request_dict):
|
|
|
+ # 得到即将下载文件的路径和名称
|
|
|
+
|
|
|
+ response = StreamingHttpResponse('123l4kjlkfjlksadjlfksdajlf')
|
|
|
+ response['Content-Type'] = 'application/octet-stream'
|
|
|
+ response['Content-Disposition'] = 'attachment;filename="lang.txt"'
|
|
|
+ return response
|