API

The following are advanced configuration features for django-mongonaut. Using them requires you to subclass the mongonaut.MongoAdmin class, then instantiate and attach your subclass as an attribute to the MongoEngine model.

Note

Future versions of mongonaut will allow you to work with pymongo collections without mongoengine serving as an intermediary.

Sample Usage

# myapp/mongoadmin.py

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

# Import your custom models
from blog.models import Post

# Subclass MongoAdmin and add a customization
class PostAdmin(MongoAdmin):

    # Searches on the title field. Displayed in the DocumentListView.
    search_fields = ('title',)

    # provide following fields for view in the DocumentListView
    list_fields = ('title', "published", "pub_date")

# Instantiate the PostAdmin subclass
# Then attach PostAdmin to your model
Post.mongoadmin = PostAdmin()

MongoAdmin Listing

All of these fields are attached to mongonaut.sites.MongoAdmin.

has_add_permission

default:

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    def has_add_permission(self, request):
        """ Can add this object """
        return request.user.is_authenticated() and request.user.is_active() and request.user.is_staff()

has_edit_permission

default:

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    def has_delete_permission(self, request):
        """ Can delete this object """
        return request.user.is_authenticated() and request.user.is_active() and request.user.is_admin()

has_edit_permission

default:

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    def has_edit_permission(self, request):
        """ Can edit this object """
        return request.user.is_authenticated() and request.user.is_active() and request.user.is_staff()

has_view_permission

default:

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    def has_view_permission(self, request):
        """ Can view this object """
        return request.user.is_authenticated() and request.user.is_active()

list_fields

default: Mongo _id

Accepts an iterable of string fields that matches fields in the associated model. Displays these fields as columns.

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    # provide following fields for view in the DocumentListView
    list_fields = ('title', "published", "pub_date")

search_fields

default: []

Accepts an iterable of string fields that matches fields in the associated model. Displays a search field in the DocumentListView. Performs an ‘icontains’ search with an ‘OR’ between evaluations.

# myapp/mongoadmin.py
class PostAdmin(MongoAdmin):

    # Searches on the title field. Displayed in the DocumentListView.
    search_fields = ('title',)

Table Of Contents

Previous topic

Future Usage

This Page