pip install eve
python
from eve import Eve
from eve_mongoengine import EveMongoEngine
app = Eve()
db = EveMongoEngine(app)
class Book(db.Document):
title = db.StringField(required=True)
author = db.ReferenceField('Author')
class Author(db.Document):
name = db.StringField(required=True)
books = db.ListField(db.ReferenceField('Book'))
if __name__ == '__main__':
app.run()
python
MONGO_HOST = 'localhost'
MONGO_PORT = 27017
MONGO_DBNAME = 'bookstore'
python
from cerberus import Validator
class BookValidator(Validator):
def _validate_unique_title(self, unique_title, field, value):
existing_books = Book.objects(title=value)
if self.document_id:
existing_books = existing_books.exclude(id=self.document_id)
if existing_books:
class Book(db.Document):
title = db.StringField(required=True, unique=True, validation=BookValidator)
author = db.ReferenceField('Author')