Simple DRM for motor client
Project description
Simple DRM for async mongo motor client
Usage
import asyncio
from MDocument import Document
class Comment(Document):
__collection__ = "comments"
class Video(Document):
__collection__ = "videos"
@Document.lazy_property(self_field="_id", other_field="video")
def comments(self):
return Comment
loop = asyncio.get_event_loop()
Document.setup(loop, "localhost", "test_database")
video = loop.run_until_complete(Video.create(
title="Test",
))
comment1 = loop.run_until_complete(Comment.create(
video=video._id,
message="First!",
))
comment2 = loop.run_until_complete(Comment.create(
video=video._id,
message="Second!"
))
Now we can easily access our comments using our lazy property
print(loop.run_until_complete(video.comments))
[
Comment(_id=5e7533d55eb6a8c6d24d3cc7, video=5e7533d55eb6a8c6d24d3cc6, message=First!),
Comment(_id=5e7533d55eb6a8c6d24d3cc8, video=5e7533d55eb6a8c6d24d3cc6, message=Second!)
]
Play from console
If you want changes made from console immediately you can use update_immediately argument
video = await Video.create(update_immediately=True,
title="Test")
video.length = "1:10"
Now we can find that original document was changed
print(await Video.collection.find_one({"length": "1:10"}))
{'_id': ObjectId('5e75373e5eb6a8c6d24d3cce'), 'title': 'Test', 'length': '1:10'}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.