{% extends "base.html" %} {% block content %}
name
: @stringgender
: @int, 1 stands for female, 0 for malelastlogin
: @datetimedisable
: @boolmongoimport -d db1 -c user_collection1 --file data_100.json
djmongoreader
to INSTALLED_APPS
in settings.py>
INSTALLED_APPS = ( ... 'djmongoreader', )
setting.py
MONGO_READER_SETTINGS = {'conn_str': os.getenv('MONGOLAB_URI', 'mongodb://127.0.0.1:27017/db1'), 'perm_check_func': 'sampleapp.security.my_mongocall_perm_check'}two keys in dj-mongo-reader setting dict:
conn_str
: MongoDB connection URI (format)
. If you provide a database name in URI, you can fetch it by following code later.
from djmongoreader.models import mongoReader mongoReader.get_dbname_in_uri()
perm_check_func
: optional, permission check function for each query command.def my_mongocall_perm_check(req, db, col, cmd): if db != "db1": # limit db to db1 return False if not col.startswith("user"): # limit collection to transaction_.* return False return True
query.html
(source code), add
{% templatetag openblock %} include 'dj-mongo-reader/table.html' {% templatetag closeblock %}
templates/dj-mongo-reader/table.html
(
source code),
modify the HTML elements in Django blockdj-mongo-rest-table
remember to add extends
statement
{% templatetag openblock %} extends "dj-mongo-reader/core.html"{% templatetag closeblock %}
views.py
(source code)to render the page
contains the form and result table
from djmongoreader.models import mongoReader def query(request): context = RequestContext(request) _dbname = mongoReader.get_dbname_in_uri() dbname = _dbname if _dbname else "db1" args = {"db": dbname, "col": "user_collection1", "rowcount": 10, "sort": json.dumps({"name": -1}), "columns": "name,disable,gender,lastlogin", "columns_trans": json.dumps({"name": "user name", "lastlogin": "last login"}) } return render_to_response("query.html", args, context_instance=context)
db
: @string, database name in MongoDB.
if you had provided database name in connection URI, you can fill the value here by mongoReader.get_dbname_in_uri()
col
: @string, collection name in MongoDBrowcount
: @int, number of result in one page. optional, default: 50sort
: @json_str, sort
statement .optional, default: no sort.
columns
: @string, columns show in the result table. format: field names connected by comma
columns_trans
: @json_str, database field name to display name mapping. optional, default:
use database field name directly
query.html
(source code) or its corresponding
Javascript file, for each field you want to make a
transformation, write a js function named in format <field name>_process
.
The function accept only one parameter, the raw value read from MongoDB.
gender
is 0, otherwise show Female
window.gender_process = function (val) { return (val ? 'Female' : 'Male'); };2, Show different icon for field
disable
field.
window.disable_process = function (val) { return (val ? '<span class="glyphicon glyphicon-ok" aria-hidden="true"></span>' : '<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>'); };{% endblock %}