ViewSets
MongoModelViewSet provides standard CRUD operations.
Basic Usage
from flask_mongo_drf import MongoModelViewSet
class UserViewSet(MongoModelViewSet):
model_class = UserModel
serializer_class = UserSerializer
filterset_class = UserFilter
pagination_class = CustomPagination
default_sort_by = "created_at"
default_sort_order = -1 # descending
Available Actions
list — GET /
create — POST /
retrieve — GET /<id>
update — PUT /<id>
partial_update — PATCH /<id>
destroy — DELETE /<id>
Custom Aggregation
Override get_pipeline to use aggregation pipelines:
class ReportViewSet(MongoModelViewSet):
def get_pipeline(self, filter_dict):
return [
{"$match": filter_dict},
{"$group": {"_id": "$category", "total": {"$sum": 1}}}
]
Route Registration
from flask import Blueprint
bp = Blueprint('api', __name__)
UserViewSet.register_routes(bp, 'users')
app.register_blueprint(bp, url_prefix='/api/v1')