Django REST Framework-如何使用视图集(三)|环球今热点

时间:2023-05-01 16:42:42 来源: 腾讯云


【资料图】

定制视图集操作

视图集提供了一些通用的操作,例如获取列表、创建对象、获取详情、更新对象、部分更新对象和删除对象等。如果需要定制这些操作的行为,可以在视图集中重写对应的方法。例如,在 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 的需求和开发人员的编写习惯。

标签:

精彩推送

手机圈新宠!真我GT5上手手感绝了

据真我副总裁徐起透露,真我GT5的旗舰质感前所未有,其打造的代价与概

来源:2023.08.25

北京食盐供应情况如何?都视频记者凌晨探访食盐配送中心

00:35北京日报客户端|记者马婧受日本核污染水排海影响,部分区域发生食

来源:2023.08.25

图解丨日本福岛核污染水排海后,如何影响中国和全球?

当地时间8月24日13时,日本政府正式启动福岛核污染水排海。曾经在中国

来源:2023.08.24

卫光生物:上半年营收净利双高增长,浆站平均采浆量行业领先

证券时报网讯,8月24日晚间,卫光生物(002880 SZ)披露半年度报告,20

来源:2023.08.24

途虎养车通过港交所上市聆讯

三言科技8月24日消息,据港交所文件显示,途虎养车通过港交所上市聆讯

来源:2023.08.24

2023中国国际装备制造业博览会时间及地点

2023中国国际装备制造业博览会时间及地点展会时间:2023年9月1日-9月5

来源:2023.08.24

极氪IPO计划募集10亿美元 估值预计超过130亿美元

易车讯据国内媒体报道,有知情人士透露吉利汽车旗下高端智能品牌极氪科

来源:2023.08.24

美商务部长访华,中美双方将讨论哪些话题?商务部回应

8月24日下午,商务部举行例行记者会。有媒体提问,中方计划同即将到访

来源:2023.08.24

中信证券:机器人行业发展趋势愈发明确

中信证券近日研报表示,近期机器人产业相关动作频出,政策方面各地陆续

来源:2023.08.24

新闻快讯

X 关闭

X 关闭

新闻快讯