Skip to content

meshy/django-schema-graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f0b982c · May 14, 2023
May 7, 2023
May 14, 2023
May 14, 2023
May 14, 2023
May 14, 2023
Feb 18, 2020
May 5, 2019
May 4, 2022
May 5, 2019
May 8, 2023
May 14, 2023
May 4, 2022
Feb 18, 2020
Feb 19, 2020
May 7, 2023
May 14, 2023
May 14, 2023
Feb 25, 2020
Mar 7, 2021
May 14, 2023
Aug 1, 2022
May 4, 2022
Feb 18, 2020
Feb 18, 2020
May 14, 2023

Repository files navigation

Django Schema Graph

Django-schema-graph makes a colourful diagram out of your Django models. The diagram is interactive, and makes it easy to toggle models and apps on/off at will.

It looks like this:

Feature Screenshot
Models models screenshot
Apps apps screenshot
Both together models and apps screenshot
Graph editor menu screenshot

(Apologies that the images above don't work on PyPI. Check it out on GitHub.)

Installation

Install from PyPI:

pip install django-schema-graph

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'schema_graph',
    ...
]

Add to your URLs.

from schema_graph.views import Schema
urlpatterns += [
    # On Django 2+:
    path("schema/", Schema.as_view()),
    # Or, on Django < 2:
    url(r"^schema/$", Schema.as_view()),
]

Use

Browse to /schema/ (assuming that's where you put it in your URLs).

You can control access to this page using the SCHEMA_GRAPH_VISIBLE setting, or by subclassing schema_graph.views.Schema and overriding access_permitted. By default the page is only visible when DEBUG is True, because we assume that you don't want to leak sensitive information about your website outside of local development.

Support

Tests run on sensible combinations of:

  • Python (3.10-3.11)
  • Django (3.2-4.1)

If you're stuck on old version of Python or Django, you may consider installing old versions. They will probably have fewer features, and there will be no support for them.

The last version to support Python 2.7 and 3.5 was 1.2.0. The last version to support Python 3.6 to 3.9 was 2.2.1.

The last version to support Django 1.8 was 1.2.0. The last version to support Django 1.9 to 3.1 was 2.2.1.

Alternatives

  • django-spaghetti-and-meatballs is great. At the time of writing, it offers a lot more detailed information on the models in the diagram, but doesn't allow them to be turned on/off in the page.