日分类商品访问量
【统计一天中访问分类信息的用户的数量】
接口分析
请求方式: GET /meiduo_admin/statistical/goods_day_views/
# 日分类商品访问量
url(r'^statistical/goods_day_views/$', statistical.GoodsDayView.as_view()),
请求参数: 通过请求头传递jwt token数据。
返回数据: JSON
[
{
"category": "分类名称",
"count": "访问量"
},
{
"category": "分类名称",
"count": "访问量"
},
...
]
返回值 | 类型 | 是否必须 | 说明 |
---|---|---|---|
category | int | 是 | 分类名称 |
count | int | 是 | 访问量 |
后端实现
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAdminUser
from datetime import date
from users.models import User
from goods.models import GoodsVisitCount
from meiduo_admin.serializers.statistical import GoodsSerializer
class GoodsDayView(APIView):
"""日分类商品访问量"""
# 指定管理员权限
permission_classes = [IsAdminUser]
def get(self, request):
# 获取当天日期
now_date = date.today()
# 获取当天访问的商品分类数量信息
data = GoodsVisitCount.objects.filter(date=now_date)
# 序列化返回分类数量
ser = GoodsSerializer(data, many=True) # 这儿使用many,因为查询集对象不止一个
return Response(ser.data)
序列化器的定义
from rest_framework import serializers
from goods.models import GoodsVisitCount
class GoodsSerializer(serializers.ModelSerializer):
# 指定返回分类名称
category = serializers.StringRelatedField(read_only=True)
class Meta:
model = GoodsVisitCount
fields = ('count', 'category')
postman测试: