(资料图片)
视图集提供了一些通用的操作,例如获取列表、创建对象、获取详情、更新对象、部分更新对象和删除对象等。如果需要定制这些操作的行为,可以在视图集中重写对应的方法。例如,在 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 的需求和开发人员的编写习惯。
下一篇:最后一页
截至2022年7月19日,Choice数据显示,市场之上已有270只(只统计主代码,下同)基金公布2022年二季度报告。其中,丘栋荣、陆彬、施成等知名基
7月15日,国家统计局公布6月70个大中城市商品住宅销售价格变动情况,以及1-6月份全国房地产开发投资销售情况,均为体现房地产行业上半年运
深交所向恒大高新发关注函,2022年7月7日至19日,公司股票价格涨幅101 01%,期间两次触及股价异常波动标准,深交所对此表示关注,要求说明
福耀玻璃(03606)发布公告,2022年7月15日,该公司在全国银行间市场公开发行2022年度第六期超短期融资券(简称22福耀玻璃SCP006),超短期融资
中科蓝讯(688332 SH)发布公告,该公司首次向社会公开发行人民币普通股3000万股,每股发行价格为人民币91 66元,募集资金总额为27 5亿元,募
X 关闭
X 关闭
作为国脉科技(002093)的实控人之一,陈国鹰欲再推旗下企业慧翰微电子股份有限公司(以下简称慧翰股份)上市,该公司此前科创板IPO曾走到注册[+更多]
7月18日,上海证券交易所(以下简称上交所)在官网发布关于对威龙葡萄酒股份有限公司及有关责任人予以监管警示的决定称,经查明,威龙葡萄酒[+更多]
信托系公募基金的团队阵营正在缩减。7月18日,来自全国产权行业信息化综合服务平台发布的信息显示,中融信托以底价约15 04亿元的价格公开挂[+更多]
7月18日,福石控股(证券代码:300071)控股股东杭州福石资产管理有限公司向台州金控资产管理有限公司质押股份1700万股,用于自身资金需求。[+更多]