Django admin and MongoDB, possible at all?

Viewed 13226

I'm building a simple short URL service, ala bitly, for our company use. And I would like to use mongodb to store the data, but I will need some kind of simple interface to add/edit short url to long url mappings.

The mongo documents will be very simple, something like this:

{
  shortUrlSlug: 'pbbs',
  fullUrl: 'http://example.com/peanut/butter/and/bacon/sandwiches/'
}

Is there anything out there that exposes a simple "CRUD" admin interface to mongodb, that can be integrated with django, where you can specify the model?
Basically like django admin, but without requiring a SQL database.

Thanks!

7 Answers

I have confirmed that django-nonrel project does support the admin interface. I did have a problem where the default SITE_ID was picked up as a number, which is not allowed as a primary key in MongoDB. I resolved this by setting:

SITE_ID = '4d421623b0207acdc500001d'

in my settings.py

I got the number by printing the id of the first site value in the collection through the shell.

I have not tested this extensively, but did register an admin for a Poll object and see it work.

Django Admin is VERY MUCH possible with MongoDB. Have you looked into the Djongo project?

Djongo is a SQL to MongoDB query compiler. It translates every SQL query string into a mongoDB query document. As a result,

  • All Django models and related modules work as is.
  • Use the Django Admin GUI to add MongoDB embedded documents.
  • Djongo provides API extensions to the Django ORM that let you ‘embed’ one document inside another, like MongoEngine.

There is an article on Using Django with MongoDB by adding just one line of code, if you are looking for more information. Otherwise, you can jump directly into the djongo documentation and start using it.

Related