You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.3 KiB
92 lines
3.3 KiB
.. _ref-contrib-databrowse: |
|
|
|
========== |
|
Databrowse |
|
========== |
|
|
|
.. module:: django.contrib.databrowse |
|
:synopsis: Databrowse is a Django application that lets you browse your data. |
|
|
|
Databrowse is a Django application that lets you browse your data. |
|
|
|
As the Django admin dynamically creates an admin interface by introspecting |
|
your models, Databrowse dynamically creates a rich, browsable Web site by |
|
introspecting your models. |
|
|
|
.. admonition:: Note |
|
|
|
Databrowse is **very** new and is currently under active development. It |
|
may change substantially before the next Django release. |
|
|
|
With that said, it's easy to use, and it doesn't require writing any |
|
code. So you can play around with it today, with very little investment in |
|
time or coding. |
|
|
|
How to use Databrowse |
|
===================== |
|
|
|
1. Point Django at the default Databrowse templates. There are two ways to |
|
do this: |
|
|
|
* Add ``'django.contrib.databrowse'`` to your :setting:`INSTALLED_APPS` |
|
setting. This will work if your :setting:`TEMPLATE_LOADERS` setting |
|
includes the ``app_directories`` template loader (which is the case by |
|
default). See the :ref:`template loader docs <template-loaders>` for |
|
more. |
|
|
|
* Otherwise, determine the full filesystem path to the |
|
`:file:`django/contrib/databrowse/templates` directory, and add that |
|
directory to your :setting:`TEMPLATE_DIRS` setting. |
|
|
|
2. Register a number of models with the Databrowse site:: |
|
|
|
from django.contrib import databrowse |
|
from myapp.models import SomeModel, SomeOtherModel |
|
|
|
databrowse.site.register(SomeModel) |
|
databrowse.site.register(SomeOtherModel) |
|
|
|
Note that you should register the model *classes*, not instances. |
|
|
|
It doesn't matter where you put this, as long as it gets executed at some |
|
point. A good place for it is in your :ref:`URLconf file |
|
<topics-http-urls>` (``urls.py``). |
|
|
|
3. Change your URLconf to import the :mod:`~django.contrib.databrowse` module:: |
|
|
|
from django.contrib import databrowse |
|
|
|
...and add the following line to your URLconf:: |
|
|
|
(r'^databrowse/(.*)', databrowse.site.root), |
|
|
|
The prefix doesn't matter -- you can use ``databrowse/`` or ``db/`` or |
|
whatever you'd like. |
|
|
|
4. Run the Django server and visit ``/databrowse/`` in your browser. |
|
|
|
Requiring user login |
|
==================== |
|
|
|
You can restrict access to logged-in users with only a few extra lines of |
|
code. Simply add the following import to your URLconf:: |
|
|
|
from django.contrib.auth.decorators import login_required |
|
|
|
Then modify the :ref:`URLconf <topics-http-urls>` so that the |
|
:func:`databrowse.site.root` view is decorated with |
|
:func:`django.contrib.auth.decorators.login_required`:: |
|
|
|
(r'^databrowse/(.*)', login_required(databrowse.site.root)), |
|
|
|
If you haven't already added support for user logins to your :ref:`URLconf |
|
<topics-http-urls>`, as described in the :ref:`user authentication docs |
|
<ref-contrib-auth>`, then you will need to do so now with the following |
|
mapping:: |
|
|
|
(r'^accounts/login/$', 'django.contrib.auth.views.login'), |
|
|
|
The final step is to create the login form required by |
|
:func:`django.contrib.auth.views.login`. The |
|
:ref:`user authentication docs <ref-contrib-auth>` provide full details and a |
|
sample template that can be used for this purpose.
|
|
|