def post(self, request: Request, format=None) -> 'Response': """ Handle POST HTTP Request :param request: Request object :param format: Whether use or not format suffixes :return: Response with JSON News data if News was successfully created, otherwise Response with 400 status code """ serializer = NewsSerializer(data=request.data) if serializer.is_valid(): serializer.save(author=request.user) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def news_list(request): """ List all code news, or create a new news. """ if request.method == 'GET': news = News.objects.all() serializer = NewsSerializer(news, many=True,context={'request': request}) return JSONResponse(serializer.data) elif request.method == 'POST': data = JSONParser().parse(request) serializer = NewsSerializer(data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data, status=201) return JSONResponse(serializer.errors, status=400)
def put(self, request: Request, news_id, format=None) -> 'Response': """ Handle PUT HTTP Request :param request: Request object :param news_id: ID of News to update :param format: Whether use or not format suffixes :return: Response with JSON News data if News was successfully updated, otherwise Response with 400 status code """ news = News.get_by_id(news_id) if not news: return Response(status=status.HTTP_404_NOT_FOUND) serializer = NewsSerializer(news, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def news_upload(request): """ Add a new news. """ if request.method == 'PUT': data = JSONParser().parse(request) data["content"] = "\n".join([k[5:] for k in data["content"] if not k.startswith("img:")]) data["coverimg"] = "" for k in data["content"]: if k.startswith("img:"): data["coverimg"] = k break serializer = NewsSerializer(data=data) if serializer.is_valid(): try: serializer.save() return JsonResponse(serializer.data) except IntegrityError: pass return JsonResponse(serializer.errors, status=400)
def news_detail(request, pk): """ Retrieve, update or delete a code news. """ try: news = News.objects.get(pk=pk) except News.DoesNotExist: return HttpResponse(status=404) if request.method == 'GET': serializer = NewsSerializer(news) return JSONResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = NewsSerializer(news, data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data) return JSONResponse(serializer.errors, status=400) elif request.method == 'DELETE': news.delete()
# <editor-fold desc="Seializer storing"> from news.serializers import NewsSerializer data = {"title": "this is title 1", "sentiment": "pn"} serializer = NewsSerializer(data=data) serializer.is_valid() serializer.save() serializer.validated_data data = { "title": "Pep Guardiola has played down suggestions that Lionel Messi could join him at Manchester City and believes " "the forward will end his playing days at Barcelona", "sentiment": "pn", "entities4thisnews": [{ "entity": "Pep Guardiola", }, { "entity": "Lionel Messi", }, { "entity": "Manchester City", }, { "entity": "Barcelona", }] } # </editor-fold> # <editor-fold desc="request data-News"> import requests import json