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: .. code-block:: python
>>> 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.
Source Distribution
MDocument-0.1.tar.gz
(4.2 kB
view hashes)