django-mongonaut

An introspective interface for Django and MongoDB


Keywords
mongodb, django
License
MIT
Install
pip install django-mongonaut==0.2.15

Documentation

django-mongonaut

Info

An introspective interface for Django and MongoDB.

Version

0.2.21

Maintainer

Jazzband (jazzband.co)

Build Status

Code Climate

Jazzband

This Project is Being Moved to Jazzband

In late 2015 @garrypolley and I agreed to move this project to the @jazzband organization. Since we've both been off MongoDB for several years, maintaining this project ourselves no longer makes sense. By handing this to Jazzband, we are:

  1. Putting the project in a place where it will be maintained and extended.
  2. Removes the time and effort needed to continue to accept and manage pull requests for a project we no longer wish to maintain but has a somewhat active user base.

About

django-mongonaut is an introspective interface for working with MongoDB via mongoengine. Rather then attempt to staple this functionality into Django's Admin interface, django-mongonaut takes the approach of rolling a new framework from scratch.

By writing it from scratch I get to avoid trying to staple ORM functionality on top of MongoDB, a NoSQL key/value binary-tree store.

Features

Installation

Made as easy as possible, setup is actually easier than django.contrib.admin. Furthermore, the only dependencies are mongoengine and pymongo. Eventually django-mongonaut will be able to support installations without mongoengine.

Get MongoDB:

Download the right version per http://www.mongodb.org/downloads

Get Django Mongonaut (and mongoengine + pymongo):

pip install -U django-mongonaut

Install the dependency in your settings.py:

INSTALLED_APPS = (
...
    'mongonaut',
...
)

You will need the following also set up:

  • django.contrib.sessions
  • django.contrib.messages

Note

No need for autodiscovery() with django-mongonaut!

Add the mongonaut urls.py file to your urlconf file:

python

from djanog import urls

urlpatterns = [

... url.path('mongonaut/', urls.include('mongonaut.urls')), ...

]

Configuration

django-mongonaut will let you duplicate much of what django.contrib.admin gives you, but in a way more suited for MongoDB. Still being implemented, but already works better than any other MongoDB solution for Django. A simple example:

# myapp/mongoadmin.py

# Import the MongoAdmin base class
from mongonaut.sites import MongoAdmin

# Import your custom models
from blog.models import Post

# Instantiate the MongoAdmin class
# Then attach the mongoadmin to your model
Post.mongoadmin = MongoAdmin()

Documentation

All the documentation for this project is hosted at https://django-mongonaut.readthedocs.io.

Dependencies

  • mongoengine >=0.5.2
  • pymongo (comes with mongoengine)
  • sphinx (optional - for documentation generation)

Code of Conduct

This project follows the Jazzband.co Code of Conduct.