This commit: 1. Formats all of our existing code using `black`. 2. Adds a note about using `black` to `CONTRIBUTING.rst`. 3. Runs `black --check` as part of CI (failing builds that aren't properly formatted).
78 lines
1.7 KiB
Python
78 lines
1.7 KiB
Python
from mongoengine import *
|
|
|
|
connect("tumblelog")
|
|
|
|
|
|
class Comment(EmbeddedDocument):
|
|
content = StringField()
|
|
name = StringField(max_length=120)
|
|
|
|
|
|
class User(Document):
|
|
email = StringField(required=True)
|
|
first_name = StringField(max_length=50)
|
|
last_name = StringField(max_length=50)
|
|
|
|
|
|
class Post(Document):
|
|
title = StringField(max_length=120, required=True)
|
|
author = ReferenceField(User)
|
|
tags = ListField(StringField(max_length=30))
|
|
comments = ListField(EmbeddedDocumentField(Comment))
|
|
|
|
# bugfix
|
|
meta = {"allow_inheritance": True}
|
|
|
|
|
|
class TextPost(Post):
|
|
content = StringField()
|
|
|
|
|
|
class ImagePost(Post):
|
|
image_path = StringField()
|
|
|
|
|
|
class LinkPost(Post):
|
|
link_url = StringField()
|
|
|
|
|
|
Post.drop_collection()
|
|
|
|
john = User(email="jdoe@example.com", first_name="John", last_name="Doe")
|
|
john.save()
|
|
|
|
post1 = TextPost(title="Fun with MongoEngine", author=john)
|
|
post1.content = "Took a look at MongoEngine today, looks pretty cool."
|
|
post1.tags = ["mongodb", "mongoengine"]
|
|
post1.save()
|
|
|
|
post2 = LinkPost(title="MongoEngine Documentation", author=john)
|
|
post2.link_url = "http://tractiondigital.com/labs/mongoengine/docs"
|
|
post2.tags = ["mongoengine"]
|
|
post2.save()
|
|
|
|
print("ALL POSTS")
|
|
print()
|
|
for post in Post.objects:
|
|
print(post.title)
|
|
# print '=' * post.title.count()
|
|
print("=" * 20)
|
|
|
|
if isinstance(post, TextPost):
|
|
print(post.content)
|
|
|
|
if isinstance(post, LinkPost):
|
|
print("Link:", post.link_url)
|
|
|
|
print()
|
|
print()
|
|
|
|
print("POSTS TAGGED 'MONGODB'")
|
|
print()
|
|
for post in Post.objects(tags="mongodb"):
|
|
print(post.title)
|
|
print()
|
|
|
|
num_posts = Post.objects(tags="mongodb").count()
|
|
print('Found %d posts with tag "mongodb"' % num_posts)
|