一个遍历django模型的库
django-mindscape的Python项目详细描述
- (待办事项:温和介绍)
- (TOdo:添加有关用例的信息)
功能
- 收集有关模型依赖关系的信息(模型->;父级)
- 收集有关模型的反向依赖关系的信息(模型->;[子项])
- 考虑顺序依赖关系的列表模型。
(考虑顺序的依赖关系意味着,当i<;j时,模型[i]不依赖于模型[j])
如何使用
fromdjango_mindscapeimportModelMapProvider,Walker,Brainfromdjango.appsimportappswalker=Walker(apps.get_models(),brain=Brain())p=ModelMapProvider(walker)""" when ParentModel : YourModel = 1 : N and OtherModel is existed. """# model dependencies (bottom up)forrelationinp.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)forrnodeinp.reverse_dependencies[ParentModel].dependencies:print(rnode.node.model)# <YourModel># clustered model listforclusterinp.cluster_models:# [[ParentModel, YourModel], [OtherModel]]formodelincluster:print(model)# ordered model listformodelinp.ordered_models:# [ParentModel, YourModel, OtherModel]print(model)