首页 > 滚动

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

来源:上甲数据 2023-05-01 22:26:20


(资料图片)

定制视图集操作

视图集提供了一些通用的操作,例如获取列表、创建对象、获取详情、更新对象、部分更新对象和删除对象等。如果需要定制这些操作的行为,可以在视图集中重写对应的方法。例如,在 BookViewSet中,我们可以定制 create()方法,以便在创建新书籍时自动将当前用户设置为书籍的作者:

class BookViewSet(viewsets.ModelViewSet):    queryset = Book.objects.all()    serializer_class = BookSerializer    def perform_create(self, serializer):        serializer.save(author=self.request.user)

在这个例子中,我们在 BookViewSet中重写了 perform_create()方法,该方法会在创建新书籍时被调用。我们使用 self.request.user获取当前请求的用户,并将其设置为新书籍的作者。

另一个例子是定制 list()方法,以便在获取书籍列表时只返回当前用户的书籍:

class BookViewSet(viewsets.ModelViewSet):    serializer_class = BookSerializer    def get_queryset(self):        user = self.request.user        return Book.objects.filter(author=user)

在这个例子中,我们在 BookViewSet中重写了 get_queryset()方法,该方法会在获取书籍列表时被调用。我们使用 self.request.user获取当前请求的用户,并将其用于过滤书籍列表,只返回当前用户的书籍。

视图集类型

DRF 中提供了多种视图集类型,可以根据不同的需求选择合适的视图集类型。以下是几种常见的视图集类型:

ModelViewSet: 提供了默认的 CRUD 操作,以及一些其他常见操作(例如过滤、分页、搜索等)。ReadOnlyModelViewSet: 提供了默认的读取操作,但不支持创建、更新和删除操作。GenericViewSet: 提供了多种操作,例如列表、创建、获取详情、更新、部分更新和删除等。ViewSet: 不提供任何操作,需要手动在子类中定义操作方法。

视图集类型的选择取决于 API 的需求和开发人员的编写习惯。

上一篇 下一篇
热文推荐 更多

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

2023-05-01

资讯推荐:客流量过大时南京地铁多个站点将临时限流

2023-05-01

当前热点-“五一”假期 出行客流持续高位运行

2023-05-01

一整套超市收银系统多少钱_超市收银系统多少钱_全球独家

2023-05-01

5月1日大型直播:津夜不入睡 我在解放桥等你 环球即时看

2023-05-01

皮肤暗黄适合穿什么颜色的衣服显白_皮肤暗黄适合穿什么颜色的衣服

2023-05-01

天天速递!哈市将试运营纯电动出租车

2023-05-01

喜得狼控股有限公司最新招聘_喜得狼

2023-05-01

猫和老鼠版泡泡堂_猫和老鼠泡泡堂

2023-05-01

天天微头条丨上市券商去年“百亿净利俱乐部”减员至3家,仅方正、信达盈利增加

2023-05-01

湖州有什么好玩的景点_湖州景区有哪些景点推荐

2023-05-01

世界热资讯!纪昌学射箭告诉我们一个什么道理_纪昌学射

2023-05-01

正佳广场-环球热文

2023-05-01

二次函数顶点式怎么带入(二次函数顶点式)

2023-05-01

网传云南景洪一网约车司机加价未果拒载 官方通报

2023-05-01

巴特勒和乔丹是父子吗_巴特勒和乔丹什么关系|天天关注

2023-05-01

徐孺子的回答妙在何处_徐孺子的回答妙在哪里

2023-05-01

瓜帅称赞哈兰德&小蜘蛛:令人难以置信的武器,或让他们搭档丁丁

2023-05-01

《漫长的季节》第11集:龚彪的死,在第1集就已埋好伏笔-快播报

2023-04-30

环球热文:右侧放射冠区腔隙性脑梗塞治疗方法 脑梗塞治疗方法

2023-04-30