自己创建的views.py文件中,视图类前加上装饰器。一定加上括号@authentication_classes([])
@permission_classes([])
正确状态返回200.
import json
from rest_framework.views import APIView
from dashboard.models import TenantServicePackage
from rest_framework.response import Response
from rest_framework import status
from background import xlogging
from rest_framework.decorators import authentication_classes, permission_classes
_logger = xlogging.getLogger(__name__)
@authentication_classes([])
@permission_classes([])
class PkgFullAloneView(APIView):
def get(self, request):
try:
package_type = int(request.GET.get('package_type', None))
assert package_type in [1, 2], "request error, 'package_type' is incorrect, package_type must be in [1, 2]"
cate_package_queryset = TenantServicePackage.objects.filter(package_type=package_type)
# 1000.00¥ 500GB×1年
common_price_format = "{price}¥ {price_uint}×{time_num}{time_uint}"
res = []
for pkg in cate_package_queryset:
temp_price_info = json.loads(pkg.price_info).get('one_year_price')
temp_price = common_price_format.format(**temp_price_info)
temp = {'package_id': pkg.uuid.hex,
'package_name': pkg.package_name,
'package_desc': pkg.package_desc,
'package_type': pkg.package_type,
'price': temp_price,
'status': pkg.status,
'package_type_desc': '整包' if package_type == 1 else '单项包'
}
res.append(temp)
except Exception as e:
_logger.error('{} is failed, because of {}'.format(self.__class__.__name__, str(e)), exc_info=True)
return Response(data={'detail': str(e), 'r': 1, 'e': str(e)}, status=status.HTTP_400_BAD_REQUEST)
return Response(data={'r': '0', 'data': res}, status=status.HTTP_200_OK)