mirror of
				https://github.com/django/django.git
				synced 2025-11-03 21:25:09 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@14646 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			161 lines
		
	
	
		
			No EOL
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			No EOL
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
========================================
 | 
						|
The Django admin documentation generator
 | 
						|
========================================
 | 
						|
 | 
						|
.. module:: django.contrib.admindocs
 | 
						|
    :synopsis: Django's admin documentation generator.
 | 
						|
 | 
						|
.. currentmodule:: django.contrib.admindocs
 | 
						|
 | 
						|
Django's :mod:`~django.contrib.admindocs` app pulls documentation from the
 | 
						|
docstrings of models, views, template tags, and template filters for any app in
 | 
						|
:setting:`INSTALLED_APPS` and makes that documentation available from the
 | 
						|
:mod:`Django admin <django.contrib.admin>`.
 | 
						|
 | 
						|
In addition to providing offline documentation for all template tags and
 | 
						|
template filters that ship with Django, you may utilize admindocs to quickly
 | 
						|
document your own code.
 | 
						|
 | 
						|
Overview
 | 
						|
========
 | 
						|
 | 
						|
To activate the :mod:`~django.contrib.admindocs`, you will need to do
 | 
						|
the following:
 | 
						|
 | 
						|
    * Add :mod:`django.contrib.admindocs` to your :setting:`INSTALLED_APPS`.
 | 
						|
    * Add ``(r'^admin/doc/', include('django.contrib.admindocs.urls'))`` to
 | 
						|
      your :data:`urlpatterns`. Make sure it's included *before* the
 | 
						|
      ``r'^admin/'`` entry, so that requests to ``/admin/doc/`` don't get
 | 
						|
      handled by the latter entry.
 | 
						|
    * Install the docutils Python module (http://docutils.sf.net/).
 | 
						|
    * **Optional:** Linking to templates requires the :setting:`ADMIN_FOR`
 | 
						|
      setting to be configured.
 | 
						|
    * **Optional:** Using the admindocs bookmarklets requires the
 | 
						|
      :mod:`XViewMiddleware<django.middleware.doc>` to be installed.
 | 
						|
 | 
						|
Once those steps are complete, you can start browsing the documentation by
 | 
						|
going to your admin interface and clicking the "Documentation" link in the
 | 
						|
upper right of the page.
 | 
						|
 | 
						|
Documentation helpers
 | 
						|
=====================
 | 
						|
 | 
						|
The following special markup can be used in your docstrings to easily create
 | 
						|
hyperlinks to other components:
 | 
						|
 | 
						|
=================   =======================
 | 
						|
Django Component    reStructuredText roles
 | 
						|
=================   =======================
 | 
						|
Models              ``:model:`appname.ModelName```
 | 
						|
Views               ``:view:`appname.view_name```
 | 
						|
Template tags       ``:tag:`tagname```
 | 
						|
Template filters    ``:filter:`filtername```
 | 
						|
Templates           ``:template:`path/to/template.html```
 | 
						|
=================   =======================
 | 
						|
 | 
						|
Model reference
 | 
						|
===============
 | 
						|
 | 
						|
The **models** section of the ``admindocs`` page describes each model in the
 | 
						|
system along with all the fields and methods available on it. Relationships to
 | 
						|
other models appear as hyperlinks. Descriptions are pulled from ``help_text``
 | 
						|
attributes on fields or from docstrings on model methods.
 | 
						|
 | 
						|
A model with useful documentation might look like this::
 | 
						|
 | 
						|
    class BlogEntry(models.Model):
 | 
						|
        """
 | 
						|
        Stores a single blog entry, related to :model:`blog.Blog` and
 | 
						|
        :model:`auth.User`.
 | 
						|
 | 
						|
        """
 | 
						|
        slug = models.SlugField(help_text="A short label, generally used in URLs.")
 | 
						|
        author = models.ForeignKey(User)
 | 
						|
        blog = models.ForeignKey(Blog)
 | 
						|
        ...
 | 
						|
 | 
						|
        def publish(self):
 | 
						|
            """Makes the blog entry live on the site."""
 | 
						|
            ...
 | 
						|
 | 
						|
View reference
 | 
						|
==============
 | 
						|
 | 
						|
Each URL in your site has a separate entry in the ``admindocs`` page, and
 | 
						|
clicking on a given URL will show you the corresponding view. Helpful things
 | 
						|
you can document in your view function docstrings include:
 | 
						|
 | 
						|
    * A short description of what the view does.
 | 
						|
    * The **context**, or a list of variables available in the view's template.
 | 
						|
    * The name of the template or templates that are used for that view.
 | 
						|
 | 
						|
For example::
 | 
						|
 | 
						|
    from myapp.models import MyModel
 | 
						|
 | 
						|
    def my_view(request, slug):
 | 
						|
        """
 | 
						|
        Display an individual :model:`myapp.MyModel`.
 | 
						|
 | 
						|
        **Context**
 | 
						|
 | 
						|
        ``RequestContext``
 | 
						|
 | 
						|
        ``mymodel``
 | 
						|
            An instance of :model:`myapp.MyModel`.
 | 
						|
 | 
						|
        **Template:**
 | 
						|
 | 
						|
        :template:`myapp/my_template.html`
 | 
						|
 | 
						|
        """
 | 
						|
        return render_to_response('myapp/my_template.html', {
 | 
						|
            'mymodel': MyModel.objects.get(slug=slug)
 | 
						|
        }, context_instance=RequestContext(request))
 | 
						|
 | 
						|
 | 
						|
Template tags and filters reference
 | 
						|
===================================
 | 
						|
 | 
						|
The **tags** and **filters** ``admindocs`` sections describe all the tags and
 | 
						|
filters that come with Django (in fact, the :ref:`built-in tag reference
 | 
						|
<ref-templates-builtins-tags>` and :ref:`built-in filter reference
 | 
						|
<ref-templates-builtins-filters>` documentation come directly from those
 | 
						|
pages). Any tags or filters that you create or are added by a third-party app
 | 
						|
will show up in these sections as well.
 | 
						|
 | 
						|
 | 
						|
Template reference
 | 
						|
==================
 | 
						|
 | 
						|
While ``admindocs`` does not include a place to document templates by
 | 
						|
themselves, if you use the ``:template:`path/to/template.html``` syntax in a
 | 
						|
docstring the resulting page will verify the path of that template with
 | 
						|
Django's :ref:`template loaders <template-loaders>`. This can be a handy way to
 | 
						|
check if the specified template exists and to show where on the filesystem that
 | 
						|
template is stored.
 | 
						|
 | 
						|
 | 
						|
Included Bookmarklets
 | 
						|
=====================
 | 
						|
 | 
						|
Several useful bookmarklets are available from the ``admindocs`` page:
 | 
						|
 | 
						|
    Documentation for this page
 | 
						|
        Jumps you from any page to the documentation for the view that generates
 | 
						|
        that page.
 | 
						|
 | 
						|
    Show object ID
 | 
						|
        Shows the content-type and unique ID for pages that represent a single
 | 
						|
        object.
 | 
						|
 | 
						|
    Edit this object
 | 
						|
        Jumps to the admin page for pages that represent a single object.
 | 
						|
 | 
						|
Using these bookmarklets requires that you are either logged into the
 | 
						|
:mod:`Django admin <django.contrib.admin>` as a
 | 
						|
:class:`~django.contrib.auth.models.User` with
 | 
						|
:attr:`~django.contrib.auth.models.User.is_staff` set to `True`, or
 | 
						|
that the :mod:`django.middleware.doc` middleware and
 | 
						|
:mod:`XViewMiddleware <django.middleware.doc>` are installed and you
 | 
						|
are accessing the site from an IP address listed in :setting:`INTERNAL_IPS`. |