焦点观察:Django REST Framework-如何使用视图集(二)

2023-04-26 01:20:59
来源:腾讯云


(资料图片)

下面是一个完整的 DRF 视图集示例,包括定义视图集、注册视图集、定制视图集操作等:

from rest_framework import viewsetsfrom rest_framework.permissions import IsAuthenticatedfrom .models import Bookfrom .serializers import BookSerializerclass BookViewSet(viewsets.ModelViewSet):    queryset = Book.objects.all()    serializer_class = BookSerializer    permission_classes = [IsAuthenticated]    def perform_create(self, serializer):        serializer.save(author=self.request.user)    def get_queryset(self):        user = self.request.user        return Book.objects.filter(author=user)

在这个例子中,我们定义了一个 BookViewSet视图集,并注册到路由中。BookViewSet提供了默认的 CRUD 操作,但也定制了 perform_create()方法和 get_queryset()方法,以便实现更多功能。在视图集中,我们还使用了 DRF 的权限控制功能,只允许已认证用户访问 API。

from django.urls import path, includefrom rest_framework.routers import DefaultRouterfrom .views import BookViewSetrouter = DefaultRouter()router.register("books", BookViewSet)urlpatterns = [    path("", include(router.urls)),]

在这个例子中,我们使用 DRF 的 DefaultRouter创建了一个路由器,并将 BookViewSet注册到路由器中,命名为 books。然后我们将路由器中的 URL 配置包含在 Django 项目的根 URL 配置中。

关键词:

[责任编辑:]

为您推荐

时评

内容举报联系邮箱:58 55 97 3 @qq.com

沪ICP备2022005074号-27 营业执照公示信息

Copyright © 2010-2020  看点时报 版权所有,未经许可不得转载使用,违者必究。