class Post(Document): title = StringField(max_length=120, required=True) author = ReferenceField(User) tags = ListField(StringField(max_length=30)) comments = ListField(EmbeddedDocumentField(Comment)) meta = {'allow_inheritance': True}
class Post(Document): title = StringField(max_length=120, required=True) author = ReferenceField(User) tags = ListField(StringField(max_length=30)) comments = ListField(EmbeddedDocumentField(Comment)) slug = StringField(max_length=120, required=True) meta = {'allow_inheritance': True} @gen.coroutine def save(self, *args, **kwargs): """Se não houver slug, criamos um""" if not self.slug: # enough for demo purposes... ;) self.slug = self.title.replace(' ', '-').lower() yield super(Post, self).save(*args, **kwargs)
class LinkPost(Post): link_url = StringField()
class ImagePost(Post): image_path = StringField()
class TextPost(Post): content = StringField()
class User(Document): email = StringField(required=True) first_name = StringField(max_length=50) last_name = StringField(max_length=50)
class Comment(EmbeddedDocument): content = StringField() name = StringField(max_length=120)