def newhouse_list(request):
"""
List all code newhouses, or create a new house.
"""
try:
page_size = int(request.GET.get('page_size', 10))
page = int(request.GET.get('page', 1))
except (TypeError, ValueError):
return JsonResponse(code=status.HTTP_400_BAD_REQUEST, desc='page and page_size must be integer!')
if request.method == 'GET':
houses = NewHouse.objects.all()
print(page_size)
paginator = Paginator(houses, page_size)
total = paginator.num_pages
try:
houses = paginator.page(page)
except PageNotAnInteger:
houses = paginator.page(1)
except EmptyPage:
houses = paginator.page(paginator.num_pages)
serializer = NewHouseListSerializer(houses, many=True)
# return JsonResponse(serializer.data, safe=False)
return JsonResponse({
'data': serializer.data,
'page': page,
'total': total
}) # ??
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = NewHouseListSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
评论列表
文章目录