Improve the Sphinx autodoc for Django classes.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sphinxcontrib-django2-1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5df7660b528596994a47ac371afa9a44b78bbb26c43e30d53b1a835c909df044 |
|
MD5 | e6471bb2ec754e4d257f457e27c478a6 |
|
BLAKE2b-256 | 6afcd9d5eba3d7d97d78ae9af063fb0635190c395e1716711a9831029457279c |
Hashes for sphinxcontrib_django2-1.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44b62b249704bbf7b2617496d08117afce299eacf29e34fd9af6af6a31f065e5 |
|
MD5 | 404a9d5ae2ecc89ac8cb12c32b2d1c99 |
|
BLAKE2b-256 | 6569d9e02c72e25c5d7eaaf4abde98d9180ee829b88d11de24692667046fcb6f |