class UniqueIndexParentDoc(Document): not_unique = fields.StrField(unique=False) unique = fields.IntField(unique=True) class Meta: allow_inheritance = True
class User(Document): nick = fields.StrField(required=True, unique=True) firstname = fields.StrField() lastname = fields.StrField() birthday = fields.DateTimeField() password = fields.StrField() # Don't store it in clear in real life !
class MySchema(Schema): a = fields.IntField() b = fields.IntField(attribute='in_mongo_b') c = fields.StrField(allow_none=True, validate=validate.Length(min=1, max=5)) d = fields.StrField()
class Parent(Document): name = fields.StrField() birthday = fields.DateTimeField(dump_only=True) child = fields.EmbeddedField(Child)
class User(Document): primary_key = fields.ObjectIdField(attribute='_id', default=ObjectId) name = fields.StrField()
class Vehicle(EmbeddedDocument): name = fields.StrField()
class Parent(Document): name = fields.StrField() child = fields.EmbeddedField(Child)
class Person(PrePostHooksMixin, Document): name = fields.StrField() age = fields.IntField()
class Dummy(Document): required_name = fields.StrField(required=True) always_io_fail = fields.IntField(io_validate=io_validate)
class Course(Document): name = fields.StrField(required=True) teacher = fields.ReferenceField(Teacher, required=True)
class Student(Document): name = fields.StrField(required=True) birthday = fields.DateTimeField() courses = fields.ListField(fields.ReferenceField(Course))
class Teacher(Document): name = fields.StrField(required=True)
class ChatMessage(Document): sender = fields.ReferenceField('ChatMember', required=True) type = fields.StrField(validate=validate.OneOf(CHAT_MESSAGE_TYPE)) body = fields.StrField() date_sended = fields.DateTimeField()
class Item(Document): name = fields.StringField(required=True) description = fields.StrField() parameters = fields.DictField()
class Book(Document): title = fields.StrField(attribute='t') author = fields.EmbeddedField(Author, attribute='a') chapters = fields.ListField(fields.EmbeddedField(Chapter), attribute='c')
class IOStudent(Student): io_field = fields.StrField(io_validate=io_validate) list_io_field = fields.ListField(fields.IntField(io_validate=io_validate)) reference_io_field = fields.ReferenceField(classroom_model.Course, io_validate=io_validate) embedded_io_field = fields.EmbeddedField(EmbeddedDoc, io_validate=io_validate)
class Some(Document): citizenship = fields.StrField() # Гражданство destination_country = fields.StrField() # Страна назначения document = fields.StrField() # Необходимый документ fields_groups = fields.ListField(fields.DictField()) fields = fields.ListField(fields.DictField())
class IOStudent(Student): io_field1 = fields.StrField(io_validate=(io_validate11, io_validate12)) io_field2 = fields.StrField(io_validate=(io_validate21, io_validate22))
class Driver(Document): name = fields.StrField() vehicle = fields.EmbeddedField(Vehicle)
class SimpleIndexDoc(Document): indexed = fields.StrField() no_indexed = fields.IntField() class Meta: indexes = ['indexed']
class Child(EmbeddedDocument): name = fields.StrField()
class UniqueIndexDoc(Document): not_unique = fields.StrField(unique=False) sparse_unique = fields.IntField(unique=True) required_unique = fields.IntField(unique=True, required=True)
class Parent(Document): id = fields.ObjectIdField(attribute='_id', default=ObjectId) name = fields.StrField()
class UniqueIndexParentDoc(Document): not_unique = fields.StrField(unique=False) unique = fields.IntField(unique=True)
class Animal(Document): name = fields.StrField(attribute='_id') # Overwrite automatic pk
class Author(EmbeddedDocument): name = fields.StrField(attribute='an')
class MySchema(Schema): field_a = fields.IntField(attribute='mongo_field_a') field_b = fields.StrField()
class Chapter(EmbeddedDocument): name = fields.StrField(attribute='cn')
class IOStudent(Student): io_field = fields.StrField(io_validate=io_validate)
class Product(Document): title = fields.StrField(required=False) description = fields.StrField() params = fields.DictField()