@@ -0,0 +1,4 @@ |
||
1 |
+[settings] |
|
2 |
+indent=' ' |
|
3 |
+line_length=120 |
|
4 |
+skip=migrations |
@@ -1,11 +1,11 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from curtail_uuid import CurtailUUID |
|
3 | 4 |
from django.contrib import admin |
4 | 5 |
from django.contrib.auth.hashers import make_password |
5 | 6 |
|
6 |
-from account.models import LensmanInfo, LensmanLoginLogInfo, UserInfo, UserLoginLogInfo |
|
7 |
- |
|
8 |
-from curtail_uuid import CurtailUUID |
|
7 |
+from account.models import (LensmanInfo, LensmanLoginLogInfo, UserInfo, |
|
8 |
+ UserLoginLogInfo) |
|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
class LensmanInfoAdmin(admin.ModelAdmin): |
@@ -1,6 +1,6 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from django.contrib.auth.models import User, Group |
|
3 |
+from django.contrib.auth.models import Group, User |
|
4 | 4 |
from rest_framework import serializers |
5 | 5 |
|
6 | 6 |
from account.models import LensmanInfo, UserInfo |
@@ -1,21 +1,18 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from django.contrib.auth.hashers import make_password, check_password |
|
4 |
-from django.contrib.auth.models import User, Group |
|
3 |
+from curtail_uuid import CurtailUUID |
|
4 |
+from django.contrib.auth.hashers import check_password, make_password |
|
5 |
+from django.contrib.auth.models import Group, User |
|
5 | 6 |
from django.http import JsonResponse |
6 |
- |
|
7 | 7 |
from rest_framework import viewsets |
8 |
+from TimeConvert import TimeConvert as tc |
|
8 | 9 |
|
9 | 10 |
from account.models import LensmanInfo, UserInfo, UserLoginLogInfo |
10 |
-from account.serializers import UserSerializer, GroupSerializer, LensmanInfoSerializer, UserInfoSerializer |
|
11 |
- |
|
12 |
-from utils.ip_utils import ip_addr |
|
13 |
- |
|
11 |
+from account.serializers import (GroupSerializer, LensmanInfoSerializer, |
|
12 |
+ UserInfoSerializer, UserSerializer) |
|
14 | 13 |
from utils.error.errno_utils import LensmanStatusCode, UserStatusCode |
15 | 14 |
from utils.error.response_utils import response |
16 |
- |
|
17 |
-from curtail_uuid import CurtailUUID |
|
18 |
-from TimeConvert import TimeConvert as tc |
|
15 |
+from utils.ip_utils import ip_addr |
|
19 | 16 |
|
20 | 17 |
|
21 | 18 |
# curl -X POST -F username=xxxxxxx -F password=xxxxxxx http://api.pai.ai/login |
@@ -9,7 +9,6 @@ from operation import views as op_views |
||
9 | 9 |
from pay import views as pay_views |
10 | 10 |
from photo import views as photo_views |
11 | 11 |
|
12 |
- |
|
13 | 12 |
# 帐户相关 |
14 | 13 |
urlpatterns = [ |
15 | 14 |
url(r'^login$', account_views.lensman_login_api, name='lensman_login_api'), # 摄影师登录 |
@@ -2,7 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo, GroupPhotoOrderInfo, PhotoCommentInfo, PhotoThumbUpInfo |
|
5 |
+from group.models import (GroupInfo, GroupPhotoInfo, GroupPhotoOrderInfo, |
|
6 |
+ GroupUserInfo, PhotoCommentInfo, PhotoThumbUpInfo) |
|
6 | 7 |
|
7 | 8 |
|
8 | 9 |
class GroupInfoAdmin(admin.ModelAdmin): |
@@ -5,12 +5,9 @@ from django.db import models |
||
5 | 5 |
from django.utils.translation import ugettext_lazy as _ |
6 | 6 |
|
7 | 7 |
from pai2.basemodels import CreateUpdateMixin |
8 |
- |
|
9 |
-from utils.url_utils import img_url |
|
10 |
- |
|
11 | 8 |
from utils.redis.rgroup import get_group_photo_thumbup_flag |
12 | 9 |
from utils.redis.rorder import get_lensman_order_record |
13 |
- |
|
10 |
+from utils.url_utils import img_url |
|
14 | 11 |
|
15 | 12 |
r = settings.REDIS_CACHE |
16 | 13 |
|
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from rest_framework import serializers |
4 | 4 |
|
5 |
-from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo |
|
5 |
+from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo |
|
6 | 6 |
|
7 | 7 |
|
8 | 8 |
class GroupInfoSerializer(serializers.HyperlinkedModelSerializer): |
@@ -1,46 +1,41 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import os |
|
4 |
+import random |
|
5 |
+ |
|
6 |
+import shortuuid |
|
7 |
+from curtail_uuid import CurtailUUID |
|
3 | 8 |
from django.conf import settings |
4 | 9 |
from django.core.files.storage import default_storage |
5 | 10 |
from django.db import connection, transaction |
6 | 11 |
from django.http import JsonResponse |
7 | 12 |
from django.shortcuts import render |
8 |
- |
|
9 | 13 |
from rest_framework import viewsets |
14 |
+from TimeConvert import TimeConvert as tc |
|
10 | 15 |
|
11 | 16 |
from account.models import UserInfo |
12 |
-from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo, PhotoCommentInfo, PhotoThumbUpInfo |
|
17 |
+from group.models import (GroupInfo, GroupPhotoInfo, GroupUserInfo, |
|
18 |
+ PhotoCommentInfo, PhotoThumbUpInfo) |
|
19 |
+from group.serializers import (GroupInfoSerializer, GroupPhotoInfoSerializer, |
|
20 |
+ GroupUserInfoSerializer) |
|
13 | 21 |
from message.models import UserMessageInfo |
14 |
- |
|
15 |
-from group.serializers import GroupInfoSerializer, GroupUserInfoSerializer, GroupPhotoInfoSerializer |
|
16 |
- |
|
17 |
-from utils.page_utils import pagination |
|
18 |
-from utils.thumbnail_utils import make_thumbnail |
|
19 |
-from utils.url_utils import img_url |
|
20 |
- |
|
21 |
-from utils.error.errno_utils import UserStatusCode, GroupStatusCode, GroupUserStatusCode, GroupPhotoStatusCode |
|
22 |
+from utils.error.errno_utils import (GroupPhotoStatusCode, GroupStatusCode, |
|
23 |
+ GroupUserStatusCode, UserStatusCode) |
|
22 | 24 |
from utils.error.response_utils import response |
23 |
- |
|
24 |
-from utils.redis.rkeys import ( |
|
25 |
- GROUP_USERS_APPLYING_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET, GROUP_USERS_DELETED_SET, |
|
26 |
- GROUP_USERS_QUIT_SET, |
|
27 |
-) |
|
28 |
-from utils.redis.rkeys import GROUP_LAST_PHOTO_PK |
|
29 |
-from utils.redis.rkeys import LENSMAN_PHOTO_PRICE, LENSMAN_PHOTO_HAGGLE_TIMES |
|
30 |
-from utils.redis.rgroup import set_group_info, get_group_info, set_group_users_info, get_group_users_info |
|
31 |
-from utils.redis.rgroup import set_group_photo_thumbup_flag, del_group_photo_thumbup_flag, get_group_photo_thumbup_flag |
|
25 |
+from utils.page_utils import pagination |
|
26 |
+from utils.redis.rgroup import (del_group_photo_thumbup_flag, get_group_info, |
|
27 |
+ get_group_photo_thumbup_flag, |
|
28 |
+ get_group_users_info, set_group_info, |
|
29 |
+ set_group_photo_thumbup_flag, |
|
30 |
+ set_group_users_info) |
|
31 |
+from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, |
|
32 |
+ GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, |
|
33 |
+ GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, |
|
34 |
+ LENSMAN_PHOTO_HAGGLE_TIMES, LENSMAN_PHOTO_PRICE) |
|
32 | 35 |
from utils.redis.rorder import get_lensman_order_record |
33 |
- |
|
34 | 36 |
from utils.sql.raw import PAI2_HOME_API |
35 |
- |
|
36 |
-from curtail_uuid import CurtailUUID |
|
37 |
- |
|
38 |
-from TimeConvert import TimeConvert as tc |
|
39 |
- |
|
40 |
-import os |
|
41 |
-import random |
|
42 |
-import shortuuid |
|
43 |
- |
|
37 |
+from utils.thumbnail_utils import make_thumbnail |
|
38 |
+from utils.url_utils import img_url |
|
44 | 39 |
|
45 | 40 |
r = settings.REDIS_CACHE |
46 | 41 |
|
@@ -0,0 +1,3 @@ |
||
1 |
+#!/bin/bash |
|
2 |
+ |
|
3 |
+isort -rc --settings-path .isort.cfg . |
@@ -2,7 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from message.models import UserMessageInfo, SystemMessageInfo, SystemMessageReadInfo, SystemMessageDeleteInfo |
|
5 |
+from message.models import (SystemMessageDeleteInfo, SystemMessageInfo, |
|
6 |
+ SystemMessageReadInfo, UserMessageInfo) |
|
6 | 7 |
|
7 | 8 |
|
8 | 9 |
class UserMessageInfoAdmin(admin.ModelAdmin): |
@@ -4,9 +4,8 @@ from django.conf import settings |
||
4 | 4 |
from django.db import models |
5 | 5 |
from django.utils.translation import ugettext_lazy as _ |
6 | 6 |
|
7 |
-from pai2.basemodels import CreateUpdateMixin |
|
8 |
- |
|
9 | 7 |
from group.models import GroupPhotoInfo |
8 |
+from pai2.basemodels import CreateUpdateMixin |
|
10 | 9 |
|
11 | 10 |
|
12 | 11 |
class UserMessageInfo(CreateUpdateMixin): |
@@ -4,15 +4,15 @@ from django.conf import settings |
||
4 | 4 |
from django.http import JsonResponse |
5 | 5 |
|
6 | 6 |
from account.models import UserInfo |
7 |
-from message.models import UserMessageInfo, SystemMessageInfo, SystemMessageReadInfo, SystemMessageDeleteInfo |
|
8 |
- |
|
9 |
-from utils.page_utils import pagination |
|
10 |
- |
|
11 |
-from utils.error.errno_utils import UserStatusCode, MessageStatusCode |
|
7 |
+from message.models import (SystemMessageDeleteInfo, SystemMessageInfo, |
|
8 |
+ SystemMessageReadInfo, UserMessageInfo) |
|
9 |
+from utils.error.errno_utils import MessageStatusCode, UserStatusCode |
|
12 | 10 |
from utils.error.response_utils import response |
13 |
- |
|
14 |
-from utils.redis.rmessage import set_system_message_read_info, get_system_message_read_info |
|
15 |
-from utils.redis.rmessage import set_system_message_delete_info, get_system_message_delete_info |
|
11 |
+from utils.page_utils import pagination |
|
12 |
+from utils.redis.rmessage import (get_system_message_delete_info, |
|
13 |
+ get_system_message_read_info, |
|
14 |
+ set_system_message_delete_info, |
|
15 |
+ set_system_message_read_info) |
|
16 | 16 |
|
17 | 17 |
|
18 | 18 |
def message_list_api(request): |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from operation.models import LatestAppInfo, SplashInfo, FeedbackInfo |
|
5 |
+from operation.models import FeedbackInfo, LatestAppInfo, SplashInfo |
|
6 | 6 |
|
7 | 7 |
|
8 | 8 |
class LatestAppInfoAdmin(admin.ModelAdmin): |
@@ -1,15 +1,15 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import datetime |
|
4 |
+import os |
|
5 |
+import time |
|
6 |
+ |
|
3 | 7 |
from django.conf import settings |
4 | 8 |
from django.db import models |
5 | 9 |
from django.utils.translation import ugettext_lazy as _ |
6 | 10 |
|
7 | 11 |
from pai2.basemodels import CreateUpdateMixin |
8 | 12 |
|
9 |
-import datetime |
|
10 |
-import os |
|
11 |
-import time |
|
12 |
- |
|
13 | 13 |
|
14 | 14 |
def upload_path(instance, old_filename): |
15 | 15 |
extension = os.path.splitext(old_filename)[1].lower() |
@@ -3,13 +3,10 @@ |
||
3 | 3 |
from django.http import JsonResponse |
4 | 4 |
|
5 | 5 |
from account.models import UserInfo |
6 |
-from operation.models import FeedbackInfo |
|
7 |
- |
|
6 |
+from operation.models import FeedbackInfo, LatestAppInfo, SplashInfo |
|
8 | 7 |
from utils.error.errno_utils import UserStatusCode |
9 | 8 |
from utils.error.response_utils import response |
10 | 9 |
|
11 |
-from operation.models import LatestAppInfo, SplashInfo |
|
12 |
- |
|
13 | 10 |
|
14 | 11 |
def upgrade_api(request): |
15 | 12 |
""" |
@@ -19,8 +19,8 @@ from django.conf import settings |
||
19 | 19 |
from django.conf.urls import include, url |
20 | 20 |
from django.conf.urls.static import static |
21 | 21 |
from django.contrib import admin |
22 |
- |
|
23 | 22 |
from rest_framework import routers |
23 |
+ |
|
24 | 24 |
from account import views as account_views |
25 | 25 |
from group import views as group_views |
26 | 26 |
from page import views as page_views |
@@ -3,7 +3,6 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.conf.urls import include, url |
5 | 5 |
|
6 |
- |
|
7 | 6 |
urlpatterns = [ |
8 | 7 |
url(r'^', include('api.urls', namespace='api')), |
9 | 8 |
] |
@@ -3,12 +3,10 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.db import models |
5 | 5 |
from django.utils.translation import ugettext_lazy as _ |
6 |
- |
|
7 | 6 |
from shortuuidfield import ShortUUIDField |
8 | 7 |
|
9 |
-from pai2.basemodels import CreateUpdateMixin |
|
10 |
- |
|
11 | 8 |
from group.models import GroupPhotoInfo |
9 |
+from pai2.basemodels import CreateUpdateMixin |
|
12 | 10 |
|
13 | 11 |
|
14 | 12 |
class OrderInfo(CreateUpdateMixin): |
@@ -1,30 +1,23 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import xmltodict |
|
3 | 4 |
from django.conf import settings |
4 | 5 |
from django.db import transaction |
5 | 6 |
from django.http import JsonResponse |
6 | 7 |
from django.shortcuts import HttpResponse |
8 |
+from logit import logit |
|
9 |
+from TimeConvert import TimeConvert as tc |
|
10 |
+from wechatpy import WeChatPay, WeChatPayException |
|
7 | 11 |
|
8 | 12 |
from group.models import GroupPhotoInfo, GroupPhotoOrderInfo |
9 | 13 |
from pay.models import OrderInfo |
10 | 14 |
from photo.models import PhotosInfo |
11 |
- |
|
12 |
-from utils.page_utils import pagination |
|
13 |
- |
|
14 | 15 |
from utils.error.errno_utils import GroupPhotoStatusCode, OrderStatusCode |
15 | 16 |
from utils.error.response_utils import response |
16 |
- |
|
17 |
+from utils.page_utils import pagination |
|
17 | 18 |
from utils.redis.rkeys import LENSMAN_PHOTO_PRICE |
18 | 19 |
from utils.redis.rorder import set_lensman_order_record |
19 | 20 |
|
20 |
-from logit import logit |
|
21 |
- |
|
22 |
-from TimeConvert import TimeConvert as tc |
|
23 |
-from wechatpy import WeChatPay, WeChatPayException |
|
24 |
- |
|
25 |
-import xmltodict |
|
26 |
- |
|
27 |
- |
|
28 | 21 |
r = settings.REDIS_CACHE |
29 | 22 |
WECHAT = settings.WECHAT |
30 | 23 |
|
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from photo.models import UUIDInfo, PhotosInfo |
|
5 |
+from photo.models import PhotosInfo, UUIDInfo |
|
6 | 6 |
|
7 | 7 |
|
8 | 8 |
class UUIDInfoAdmin(admin.ModelAdmin): |
@@ -5,7 +5,6 @@ from django.db import models |
||
5 | 5 |
from django.utils.translation import ugettext_lazy as _ |
6 | 6 |
|
7 | 7 |
from pai2.basemodels import CreateUpdateMixin |
8 |
- |
|
9 | 8 |
from utils.url_utils import img_url |
10 | 9 |
|
11 | 10 |
|
@@ -1,8 +1,9 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from photo.models import PhotosInfo |
|
4 | 3 |
from rest_framework import serializers |
5 | 4 |
|
5 |
+from photo.models import PhotosInfo |
|
6 |
+ |
|
6 | 7 |
|
7 | 8 |
class PhotosInfoSerializer(serializers.HyperlinkedModelSerializer): |
8 | 9 |
class Meta: |
@@ -1,36 +1,29 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import os |
|
4 |
+ |
|
5 |
+import shortuuid |
|
6 |
+from curtail_uuid import CurtailUUID |
|
3 | 7 |
from django.conf import settings |
4 | 8 |
from django.core.files.storage import default_storage |
5 | 9 |
from django.db import transaction |
6 | 10 |
from django.http import JsonResponse |
7 | 11 |
from django.shortcuts import render |
8 |
- |
|
9 | 12 |
from rest_framework import viewsets |
13 |
+from TimeConvert import TimeConvert as tc |
|
10 | 14 |
|
11 | 15 |
from account.models import LensmanInfo, UserInfo |
12 |
-from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo |
|
13 |
-from photo.models import UUIDInfo, PhotosInfo |
|
16 |
+from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo |
|
17 |
+from photo.models import PhotosInfo, UUIDInfo |
|
14 | 18 |
from photo.serializers import PhotosInfoSerializer |
15 |
- |
|
16 |
-from utils.ip_utils import ip_addr |
|
17 |
-from utils.thumbnail_utils import make_thumbnail |
|
18 |
-from utils.watermark_utils import watermark_wrap |
|
19 |
- |
|
20 | 19 |
from utils.error.errno_utils import PhotoStatusCode |
21 | 20 |
from utils.error.response_utils import response |
22 |
- |
|
21 |
+from utils.ip_utils import ip_addr |
|
22 |
+from utils.redis.rgroup import (get_group_info, get_group_users_info, |
|
23 |
+ set_group_info, set_group_users_info) |
|
23 | 24 |
from utils.redis.rkeys import GROUP_LAST_PHOTO_PK |
24 |
-from utils.redis.rgroup import get_group_info, get_group_users_info |
|
25 |
-from utils.redis.rgroup import set_group_info, set_group_users_info |
|
26 |
- |
|
27 |
-from curtail_uuid import CurtailUUID |
|
28 |
- |
|
29 |
-from TimeConvert import TimeConvert as tc |
|
30 |
- |
|
31 |
-import os |
|
32 |
-import shortuuid |
|
33 |
- |
|
25 |
+from utils.thumbnail_utils import make_thumbnail |
|
26 |
+from utils.watermark_utils import watermark_wrap |
|
34 | 27 |
|
35 | 28 |
r = settings.REDIS_CACHE |
36 | 29 |
|
@@ -2,11 +2,10 @@ |
||
2 | 2 |
|
3 | 3 |
from django.conf import settings |
4 | 4 |
|
5 |
-from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo |
|
6 |
- |
|
7 |
-from utils.redis.rkeys import GROUP_USERS_APPLYING_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET, GROUP_USERS_DELETED_SET |
|
8 |
-from utils.redis.rkeys import GROUP_LAST_PHOTO_PK |
|
9 |
- |
|
5 |
+from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo |
|
6 |
+from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, |
|
7 |
+ GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, |
|
8 |
+ GROUP_USERS_REFUSED_SET) |
|
10 | 9 |
|
11 | 10 |
r = settings.REDIS_CACHE |
12 | 11 |
|
@@ -1,12 +1,12 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import json |
|
4 |
+ |
|
3 | 5 |
from django.conf import settings |
4 | 6 |
from django.core.serializers.json import DjangoJSONEncoder |
5 | 7 |
|
6 |
-from utils.redis.rkeys import GROUP_INFO, GROUP_USERS_INFO, GROUP_PHOTO_THUMB_UP |
|
7 |
- |
|
8 |
-import json |
|
9 |
- |
|
8 |
+from utils.redis.rkeys import (GROUP_INFO, GROUP_PHOTO_THUMB_UP, |
|
9 |
+ GROUP_USERS_INFO) |
|
10 | 10 |
|
11 | 11 |
r = settings.REDIS_CACHE |
12 | 12 |
|
@@ -1,13 +1,12 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from django.conf import settings |
|
4 |
- |
|
5 |
-from message.models import SystemMessageReadInfo, SystemMessageDeleteInfo |
|
6 |
- |
|
7 |
-from utils.redis.rkeys import SYSTEM_MESSAGE_READ_INFO, SYSTEM_MESSAGE_DELETED_INFO |
|
8 |
- |
|
9 | 3 |
import json |
10 | 4 |
|
5 |
+from django.conf import settings |
|
6 |
+ |
|
7 |
+from message.models import SystemMessageDeleteInfo, SystemMessageReadInfo |
|
8 |
+from utils.redis.rkeys import (SYSTEM_MESSAGE_DELETED_INFO, |
|
9 |
+ SYSTEM_MESSAGE_READ_INFO) |
|
11 | 10 |
|
12 | 11 |
r = settings.REDIS_CACHE |
13 | 12 |
|
@@ -1,13 +1,12 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import json |
|
4 |
+ |
|
3 | 5 |
from django.conf import settings |
4 | 6 |
from django.core.serializers.json import DjangoJSONEncoder |
5 | 7 |
|
6 | 8 |
from utils.redis.rkeys import LENSMAN_PHOTO_ORDER_RECORD |
7 | 9 |
|
8 |
-import json |
|
9 |
- |
|
10 |
- |
|
11 | 10 |
r = settings.REDIS_CACHE |
12 | 11 |
|
13 | 12 |
|