Sunday, April 27, 2014

README

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
Sample Output

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

validation

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

field-validation


Requirements


License

See LICENSE