Skip to main content

a library traversing django models

Project description

  • (todo: gentle introduction)

  • (todo: add information about use case)

features

  • collecting information about dependencies of models (model -> parent)

  • collecting information about reverse dependencies of models (model -> [children])

  • listing model with dependencies-considered order.

(dependencies-considered order means, when i < j, models[i] doesn’t depends on models[j])

how to use

from django_mindscape import ModelMapProvider, Walker, Brain
from django.apps import apps

walker = Walker(apps.get_models(), brain=Brain())
p = ModelMapProvider(walker)

"""
when ParentModel : YourModel = 1 : N
and OtherModel is existed.
"""

# model dependencies (bottom up)
for relation in p.dependencies[YourModel].dependencies:
    print(relation.from_.model)  # <YourModel>
    print(relation.to.model)  # <ParentModel>
    print(relation.type)  # relation type (candidates: 11, 1M, MM)

# reverse dependencies (top down)
for rnode in p.reverse_dependencies[ParentModel].dependencies:
    print(rnode.node.model)  # <YourModel>

# clustered model list
for cluster in p.cluster_models:  # [[ParentModel, YourModel], [OtherModel]]
    for model in cluster:
        print(model)

# ordered model list
for model in p.ordered_models:  # [ParentModel, YourModel, OtherModel]
    print(model)

Project details


Download files

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

Source Distribution

django-mindscape-0.3.0.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file django-mindscape-0.3.0.tar.gz.

File metadata

File hashes

Hashes for django-mindscape-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4d9606e91db131c53efbe0bf13b91d0debdfcde447f26ae484a1ed3d40c46f4b
MD5 4912982418af949d849cb330f5d6c405
BLAKE2b-256 5d74abe1a5716922feaab61d59d592c6cfe011c3bdebfcb2cf4abac3b3d69d5a

See more details on using hashes here.

Supported by

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