Exemple #1
0
    def put(self, request, pk):
        article = self.get_object(pk)
        serializer = ArticleSerializer(article)

        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #2
0
def save_article_with_serializer(article):
    themes = article.get("themes")
    if themes: article.pop("themes")

    serializer = ArticleSerializer(data=article)

    if serializer.is_valid():
        article_obj = serializer.save()
        print(f"id:{article_obj.id}, title:{article_obj.title}")
        return save_article_theme(article_obj, themes)

    return None
Exemple #3
0
 def Update(id, data, serialize=True):
     article = ArticleManager.Find(id, False)
     if article is not None:
         serialized = ArticleSerializer(article, data=data, partial=True)
         if serialized.is_valid():
             instance = serialized.save()
             if instance:
                 if serialize:
                     return serialized.data
                 else:
                     return instance
     return None
Exemple #4
0
def ref_article_view(request, ref_type):
    if ref_type == 'latest':
        Model, Serializer = Latest, LatestSerializer
    elif ref_type == 'main':
        Model, Serializer = Main, MainSerializer
    else:
        return JsonResponse({'msg': 'wrong article type name'})

    # METHOD: GET
    if request.method == 'GET':
        ref_articles = [
            get_object_or_404(Article, pk=article.get('article_id')).__dict__ 
            for article in Model.objects.values()
        ]

        return JsonResponse({'articles': ArticleSerializer(ref_articles, many=True).data})

    # METHOD: POST
    new_articles = request.POST.get('articles')             # read articles
    new_articles = json.loads(new_articles)                 # parsing json to list dict or dict
    new_articles = wrap_articles(new_articles)              # wrap articles
    saved_num    = save_articles(new_articles)

    for article in new_articles:
        url = article.get("url")
        Model(article=Article.objects.get(url=url)).save()

    return JsonResponse({'saved': saved_num, 'total': len(new_articles)})
Exemple #5
0
 def List(serialize=True):
     articles = Article.objects.all().order_by('-dateCreated')
     if serialize:
         serialized = ArticleSerializer(articles, many=True)
         return serialized.data
     else:
         return articles
Exemple #6
0
 def Find(id, serialize=True):
     try:
         article = Article.objects.get(id=id)
     except:
         return None
     if serialize:
         serialized = ArticleSerializer(article)
         return serialized.data
     else:
         return article
Exemple #7
0
def article_view(request):
    # METHOD: GET
    if request.method == 'GET':
        return Response(ArticleSerializer(Article.objects.all(), many=True).data)

    # METHOD: POST
    new_articles = request.POST.get('articles')             # read articles
    new_articles = json.loads(new_articles)                 # parsing json to list dict or dict
    new_articles = wrap_articles(new_articles)              # wrap articles
    saved_num    = save_articles(new_articles)

    return JsonResponse({'saved': saved_num, 'total': len(new_articles)})
Exemple #8
0
def article_list_create_api_view(request):
    if request.method == "GET":
        articles = Article.objects.filter(active=True)
        serializer = ArticleSerializer(articles, many=True)
        return Response(serializer.data)

    elif request.method == "POST":
        serializer = ArticleSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #9
0
 def Create(author, data):
     serialized = ArticleSerializer(data=data, partial=True)
     if serialized.is_valid():
         instance = serialized.save(author)
         if instance:
             serialized = ArticleSerializer(instance)
             return (True, serialized.data)
     return (
         False,
         serialized.errors,
     )
Exemple #10
0
def article_detail_api_view(request, pk):
    try:
        article = Article.objects.get(pk=pk)
    except Article.DoesNotExist:
        return Response(
            {"error": {
                "code": 404,
                "message": "Article Not Found!"
            }})
    if request.method == "GET":
        serializer = ArticleSerializer(article)
        return Response(serializer.data)

    elif request.method == "PUT":
        serializer = ArticleSerializer(article, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == "DELETE":
        article.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Exemple #11
0
 def get(self, request, pk):
     article = self.get_object(pk)
     serializer = ArticleSerializer(article)
     return Response(serializer.data)
Exemple #12
0
 def post(self, request):
     serializer = ArticleSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #13
0
 def get(self, request):
     articles = Article.objects.filter(active=True)
     serializer = ArticleSerializer(articles, many=True)
     return Response(serializer.data)