Hello developer I'm beginner to django , im following a tutorial in which he create concrete views classes and convert them to viewset.ModelViewSet classes. and he use default router in urls.py
my app showing list of articles with viewset but not perform the post method with the ArticleViewSet(viewset.ModelViewSet)
so im confused about it to use viewset
This is my api/view.py file im using Concrete View Classes in which i using concrete view classses **
class ArticleListView(ListAPIView):
queryset = Articles.objects.all()
serializer_class = ArticleSerializer
class ArticleDetailView(RetrieveAPIView):
queryset = Articles.objects.all()
serializer_class = ArticleSerializer
class ArticleUpdateView(UpdateAPIView):
queryset = Articles.objects.all()
serializer_class = ArticleSerializer
class ArticleDeleteView(DestroyAPIView):
queryset = Articles.objects.all()
serializer_class = ArticleSerializer
class ArticleCreateView(CreateAPIView):
permission_classes = []
#parser_classes = (FormParser,MultiPartParser, FileUploadParser )
serializer_class = ArticleSerializer
queryset = Articles.objects.all()
#serializer = ArticleSerializer(queryset, many=True)
def post(self, request):
serializer = ArticleSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(True, status=200)
# class ArticleViewSet(viewsets.ModelViewSet):
# parser_classes = (FormParser,MultiPartParser, FileUploadParser )
# serializer_class = ArticleSerializer
# queryset = Articles.objects.all()
**this are my urls patterns api/url.py in Article app **
urlpatterns = [
path('articles', ArticleListView.as_view() name=""),
path('xyz', ArticleCreateView.as_view()),
path('<pk>', ArticleDetailView.as_view()),
path('<pk>/update/', ArticleUpdateView.as_view()),
path('<pk>/delete/', ArticleDeleteView.as_view())
]
#from articles.api.views import *
# from rest_framework.routers import DefaultRouter
# router = DefaultRouter()
# router.register(r'', ArticleViewSet, basename='articles')
# urlpatterns = router.urls
**These are my url patterns of urls.py in settings folder **
urlpatterns = [
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path('rest-auth/', include('rest_auth.urls')),
path('rest-auth/registration/', include('rest_auth.registration.urls')),
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('api/', include('articles.api.urls')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)