In your settings.py file, ignore the standard database settings (unless you also plan to use the ORM in your project), and instead call connect() somewhere in the settings module.
MongoEngine includes a Django authentication backend, which uses MongoDB. The User model is a MongoEngine Document, but implements most of the methods and attributes that the standard Django User model does - so the two are moderately compatible. Using this backend will allow you to store users in MongoDB but still use many of the Django authentication infrastucture (such as the login_required() decorator and the authenticate() function). To enable the MongoEngine auth backend, add the following to you settings.py file:
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
The auth module also contains a get_user() helper function, that takes a user’s id and returns a User object.
New in version 0.1.3.
Django allows the use of different backend stores for its sessions. MongoEngine provides a MongoDB-based session backend for Django, which allows you to use sessions in you Django application with just MongoDB. To enable the MongoEngine session backend, ensure that your settings module has 'django.contrib.sessions.middleware.SessionMiddleware' in the MIDDLEWARE_CLASSES field and 'django.contrib.sessions' in your INSTALLED_APPS. From there, all you need to do is add the following line into you settings module:
SESSION_ENGINE = 'mongoengine.django.sessions'
New in version 0.2.1.
With MongoEngine’s support for GridFS via the FileField, it is useful to have a Django file storage backend that wraps this. The new storage module is called GridFSStorage. Using it is very similar to using the default FileSystemStorage.:
from mongoengine.django.storage import GridFSStorage
fs = GridFSStorage()
filename = fs.save('hello.txt', 'Hello, World!')
All of the Django Storage API methods have been implemented except path(). If the filename provided already exists, an underscore and a number (before # the file extension, if one exists) will be appended to the filename until the generated filename doesn’t exist. The save() method will return the new filename.:
>>> fs.exists('hello.txt')
True
>>> fs.open('hello.txt').read()
'Hello, World!'
>>> fs.size('hello.txt')
13
>>> fs.url('hello.txt')
'http://your_media_url/hello.txt'
>>> fs.open('hello.txt').name
'hello.txt'
>>> fs.listdir()
([], [u'hello.txt'])
All files will be saved and retrieved in GridFS via the :class::FileDocument document, allowing easy access to the files without the GridFSStorage backend.:
>>> from mongoengine.django.storage import FileDocument
>>> FileDocument.objects()
[<FileDocument: FileDocument object>]
New in version 0.4.