drfのMixinで継承関係もインスタンスメソッドもないのに、メソッドが使えるのはなぜか
Q&A
Closed
解決したいこと
drfのviewを実装するときにmixinsの中のlistmodelmixinを使うのですが、下記のコードの通り
listmodelmixinは、何かの具象クラスでもなければ、内部でインスタンスメソッドが定義されているわけではありません。なのにself.filter_querysetのようなメソッドが使えるのはなぜですか?
該当するソースコード
class ListModelMixin:
"""
List a queryset.
"""
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)