pri*_*moz 1 python django python-3.x django-rest-framework
是否有可能考虑到MyModelViewSet的filter_backends创建自定义的查询集什么时候?
class MyModelViewSet(viewsets.ModelViewSet):
filter_backends = (CustomFilter, )
serializer_class = MySerializer
def get_queryset(self):
# It should not return all objects, but only results from `CustomFilter`
queryset = LedgerEntry.objects.all()
# some extra filtering
return queryset
Run Code Online (Sandbox Code Playgroud)
我应该如何实施呢?
的Django:1.10
Django Rest框架:3.4.6
是的你可以。只是扩展filter_querysetViewSet的方法
class MyModelViewSet(viewsets.ModelViewSet):
filter_backends = (CustomFilter, )
serializer_class = MySerializer
def filter_queryset(self, queryset):
# super needs to be called to filter backends to be applied
queryset = super().filter_queryset(queryset)
# some extra filtering
return queryset
Run Code Online (Sandbox Code Playgroud)
在ViewSet中的操作方法中,它实际上是这样做的
queryset = self.filter_queryset(self.get_queryset())
Run Code Online (Sandbox Code Playgroud)
因此,发送到序列化程序的查询集是由创建get_queryset并随后使用过滤的查询集filter_queryset
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |