diff --git a/setup.cfg b/setup.cfg index bc8f206..4f33e46 100644 --- a/setup.cfg +++ b/setup.cfg @@ -24,7 +24,7 @@ ignore_errors = True [tool:pytest] -DJANGO_SETTINGS_MODULE=src.config.settings.test +DJANGO_SETTINGS_MODULE = config.settings.base norecursedirs = .git __pycache__ migrations template addopts = -s filterwarnings = diff --git a/v2/src/blog/serializers.py b/v2/src/blog/serializers.py new file mode 100644 index 0000000..41a9978 --- /dev/null +++ b/v2/src/blog/serializers.py @@ -0,0 +1,9 @@ +from rest_framework import serializers + +from .models import Post + + +class PostSerializer(serializers.ModelSerializer): + class Meta: + model = Post + fields = ("author", "title", "text", "created_date", "published_date") diff --git a/v2/src/blog/urls.py b/v2/src/blog/urls.py new file mode 100644 index 0000000..ad8f7c0 --- /dev/null +++ b/v2/src/blog/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path("posts/", views.PostListView.as_view(), name="retrieve_post_list"), +] diff --git a/v2/src/blog/views.py b/v2/src/blog/views.py index e69de29..52af84c 100644 --- a/v2/src/blog/views.py +++ b/v2/src/blog/views.py @@ -0,0 +1,14 @@ +from django.utils import timezone +from rest_framework import status +from rest_framework.response import Response +from rest_framework.views import APIView + +from .models import Post +from .serializers import PostSerializer + + +class PostListView(APIView): + def get(self, request): + posts = Post.objects.filter(published_date__lte=timezone.now()).order_by("published_date") + serializer = PostSerializer(posts, many=True) + return Response({"posts": serializer.data}, status=status.HTTP_200_OK) diff --git a/v2/src/config/urls.py b/v2/src/config/urls.py index 4295eb5..82175f3 100644 --- a/v2/src/config/urls.py +++ b/v2/src/config/urls.py @@ -14,8 +14,6 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include -urlpatterns = [ - path("admin/", admin.site.urls), -] +urlpatterns = [path("admin/", admin.site.urls), path("api/", include("blog.urls"))]