from mongoengine import Document, EmbeddedDocument, EmbeddedDocumentField, StringField, Q from database import Database, strict from database.fields import StrippedStringField from database.model import DbModelMixin class CompanyDefaults(EmbeddedDocument): cluster = StringField() class Company(DbModelMixin, Document): meta = { 'db_alias': Database.backend, 'strict': strict, } id = StringField(primary_key=True) name = StrippedStringField(unique=True, min_length=3) defaults = EmbeddedDocumentField(CompanyDefaults) @classmethod def _prepare_perm_query(cls, company, allow_public=False): """ Override default behavior since a 'company' constraint is not supported for this document... """ return Q()