Mongoengine Model Serializer
Introduction
MongoEngine Model Serializer for Django Rest Framework
This serializer is an extension to Model Serializer.
MongoEngine Model Serializer
is pretty easy to learn and has flexible usage.
Table of Contents
Features
- Serializing
- Embedding
- Referencing
- Validating
MongoEngine Documents
Setup
Pip Installer
pip install django-rest-framework-mongoengine
GitHub Releases
Download from Repo’s releases section.
Usage
Embedding and Referencing
serializers.py
from rest_framework_mongoengine import mongoengine_serializer
class CommentSerializer(MongoEngineModelSerializer):
class Meta:
model = Comment
depth = 1
related_model_validations = {'owner': User, 'post': Post}
exclude = ('isApproved',)
<div class="se-section-delimiter"></div>
models.py
class Comment(Document):
post = ReferenceField(Post)
owner = ReferenceField(User)
text = StringField(max_length=140)
isApproved = BooleanField(default=False)
<div class="se-section-delimiter"></div>
Hint: Mongoengine Model Serializer will reference or embed Post/User Documents regarding CommentSerializer’s depth.
Sample Output
CommentSerializer embedded ‘owner’ and ‘post’ Documents
and referenced ‘blog’ and ‘author’ inside ‘post’ Document because depth is 1
Validation
Reference Field Validation
Mongoengine Model Serializer has built-in Reference Field validation.
Just one extra line of code in Serializer Class.
related_model_validations = {'owner': User, 'post': Post}
<div class="se-section-delimiter"></div>
Sample Output
Field Validation
Specify you validations on models.py, just like regular Model Serializer.
class User(Document):
name = StringField(max_length=50)
rating = DecimalField(max_digits=2, decimal_places=1)
username = StringField(max_length=30)
email = EmailField(max_length=30)
Sample Output
Requirements
License
See LICENSE