Skip to main content

Improve the Sphinx autodoc for Django classes.

Project description

GitHub Workflow Status PyPi Code coverage Black Code Style GitHub license Documentation Status

logo

sphinxcontrib-django2

This is a sphinx extension which improves the documentation of Django apps.

Features

Improvements for the output of Sphinx’s autodoc for Django classes:

  • List all model and form fields as class parameters

  • Improve model field representations

  • Link related and reverse related fields to the referenced class

  • Hide irrelevant runtime information like declared_fieldsets, fieldsets and Meta from classes

  • Add information about autogenerated methods

  • Fix intersphinx mappings to Django modules

  • Custom text roles to cross-reference the documentations of Django (:setting:, :templatetag:, :templatefilter:, :fieldlookup:) and Sphinx (:event:, :confval:)

This is a fork of sphinxcontrib-django, which seems to be no longer maintained.

Installation

Install the package via pip:

pip install sphinxcontrib-django2

Configuration

Add the following to your Sphinx config file conf.py:

# Add source directory to sys.path
sys.path.insert(0, os.path.abspath("../src"))

# Add sphinxcontrib_django2 to installed extensions
extensions = [
    "sphinxcontrib_django2",
]

# Configure the path to the Django settings module
django_settings = "myapp.settings"

Optionally, you can include the table names of your models in their docstrings with:

# Include the database table names of Django models
django_show_db_tables = True

Advanced Usage

If you want to run custom code which depends on Django, e.g. to monkeypatch your application during documentation build, you might run into an ImproperlyConfigured exception:

Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Therefore, this Sphinx extension emits the event django-configured after django.setup() is finished, so you can run your code the following way in conf.py:

def patch_django(app):
    """
    Your custom code here
    """

def setup(app):
    app.connect("django-configured", patch_django)

Contributing

Pull requests are always welcome!

You can install all requirements of the development setup with the extras dev, test, doc and optional:

python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev,test,doc,optional]
pre-commit install

Run the tests and generate the coverage report with:

coverage run
coverage html

Build the documentation with:

cd docs
make html

The documentation is automatically deployed to Read the Docs.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinxcontrib-django2-1.3.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

sphinxcontrib_django2-1.3-py2.py3-none-any.whl (20.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sphinxcontrib-django2-1.3.tar.gz.

File metadata

  • Download URL: sphinxcontrib-django2-1.3.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for sphinxcontrib-django2-1.3.tar.gz
Algorithm Hash digest
SHA256 4b1b09c9d5a091a48a38b2611a632f9fdd396061ed156c394cf99b8a6ed72123
MD5 9a1fc91f4eb153241fe20d0f6593a682
BLAKE2b-256 d156e212c1a69a1eb480ce812b9db75989b9ca9c28dca6ad8c0fdda138cea857

See more details on using hashes here.

File details

Details for the file sphinxcontrib_django2-1.3-py2.py3-none-any.whl.

File metadata

  • Download URL: sphinxcontrib_django2-1.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for sphinxcontrib_django2-1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 49f3091a431e74619cd1667e297f63d1b100b2cc253f8d99ebadd2103942c80a
MD5 e978ea341ce6df176749b56028212cd0
BLAKE2b-256 3e0286a61e9d048f6ab4eefe88f03fff7fae80641cb5c73d329fd5d373edc110

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page