========== Databrowse ========== .. module:: django.contrib.databrowse :synopsis: Databrowse is a Django application that lets you browse your data. .. deprecated:: 1.4 This module has been deprecated. 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. 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 ` 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, YetAnotherModel databrowse.site.register(SomeModel) databrowse.site.register(SomeOtherModel, YetAnotherModel) Note that you should register the model *classes*, not instances. .. versionchanged:: 1.4 Since Django 1.4, it is possible to register several models in the same call to :func:`~databrowse.site.register`. 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 :doc:`URLconf file ` (``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 :doc:`URLconf ` 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 :doc:`URLconf `, as described in the :doc:`user authentication docs `, 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 :doc:`user authentication docs ` provide full details and a sample template that can be used for this purpose.