Привет, разработчик. Я новичок в django, я следую учебному пособию, в котором он создает конкретные классы представлений и преобразует их в классы viewset.ModelViewSet. и он использует маршрутизатор по умолчанию в urls.py
мое приложение показывает список статей с набором представлений, но не выполняет метод публикации с ArticleViewSet(viewset.ModelViewSet)
, поэтому я смущен этим, чтобы использовать viewset
Это мой файл api/view.py, в котором я использую конкретные классы представлений, в которых я использую конкретные классы представлений **
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()
**это мои шаблоны URL api/url.py в приложении для статей **
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
** Это мои шаблоны URL-адресов urls.py в папке настроек **
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)