Skip to content

Commit 3bff5ef

Browse files
9 - Create Serializer and Create API View
1 parent c14c057 commit 3bff5ef

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

src/db.sqlite3

0 Bytes
Binary file not shown.

src/posts/api/serializers.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
from posts.models import Post
44

55

6-
class PostListSerializer(ModelSerializer):
6+
class PostCreateUpdateSerializer(ModelSerializer):
77
class Meta:
88
model = Post
99
fields = [
10+
#'id',
1011
'title',
11-
'slug',
12+
#'slug',
1213
'content',
1314
'publish'
1415
]
@@ -25,6 +26,21 @@ class Meta:
2526
'publish'
2627
]
2728

29+
30+
31+
class PostListSerializer(ModelSerializer):
32+
class Meta:
33+
model = Post
34+
fields = [
35+
'title',
36+
'slug',
37+
'content',
38+
'publish'
39+
]
40+
41+
42+
43+
2844
""""
2945
3046
from posts.models import Post

src/posts/api/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.contrib import admin
33

44
from .views import (
5+
PostCreateAPIView,
56
PostDeleteAPIView,
67
PostDetailAPIView,
78
PostListAPIView,
@@ -10,7 +11,7 @@
1011

1112
urlpatterns = [
1213
url(r'^$', PostListAPIView.as_view(), name='list'),
13-
# url(r'^create/$', post_create),
14+
url(r'^create/$', PostCreateAPIView.as_view(), name='create'),
1415
url(r'^(?P<slug>[\w-]+)/$', PostDetailAPIView.as_view(), name='detail'),
1516
url(r'^(?P<slug>[\w-]+)/edit/$', PostUpdateAPIView.as_view(), name='update'),
1617
url(r'^(?P<slug>[\w-]+)/delete/$', PostDeleteAPIView.as_view(), name='delete'),

src/posts/api/views.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
from rest_framework.generics import (
2+
CreateAPIView,
23
DestroyAPIView,
34
ListAPIView,
45
UpdateAPIView,
56
RetrieveAPIView
67
)
78

89
from posts.models import Post
9-
from .serializers import PostDetailSerializer, PostListSerializer
10+
from .serializers import (
11+
PostCreateUpdateSerializer,
12+
PostDetailSerializer,
13+
PostListSerializer
14+
)
15+
16+
17+
class PostCreateAPIView(CreateAPIView):
18+
queryset = Post.objects.all()
19+
serializer_class = PostCreateUpdateSerializer
1020

1121

1222
class PostDetailAPIView(RetrieveAPIView):
@@ -17,7 +27,7 @@ class PostDetailAPIView(RetrieveAPIView):
1727

1828
class PostUpdateAPIView(UpdateAPIView):
1929
queryset = Post.objects.all()
20-
serializer_class = PostDetailSerializer
30+
serializer_class = PostCreateUpdateSerializer
2131
lookup_field = 'slug'
2232
#lookup_url_kwarg = "abc"
2333

0 commit comments

Comments
 (0)