前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django REST Framework-如何使用视图集(二)

Django REST Framework-如何使用视图集(二)

原创
作者头像
玖叁叁
发布2023-04-25 09:48:22
8470
发布2023-04-25 09:48:22
举报
文章被收录于专栏:玖叁叁

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

代码语言:javascript
复制
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated
from .models import Book
from .serializers import BookSerializer

class 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。

代码语言:javascript
复制
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import BookViewSet

router = DefaultRouter()
router.register('books', BookViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档