Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a tool for Django project structure/information flow visualization?

I would like to be able to view the structure of my Django project, i.e. which urls point to which views, which views point to which templates, which css files are included in which templates etc.

I know about the great model visualization tool in Django command extensions, but I need a different tool that is able to visualize links between:

  1. Urls and views;
  2. Views and templates;
  3. Templates and other templates (via {% extends %}, {% include %} and custom template tags);
  4. Templates and static files (css, js, images).

Are there any?

like image 525
Dennis Golomazov Avatar asked Feb 10 '11 07:02

Dennis Golomazov


1 Answers

It is impossible to create tools which you are looking for that would work good in practice. Django does not force you to any structure. Tool can only be made to work with strict structure. Also django allows you to take full advantage of the dynamic nature of python. It is too difficult to create tools which could understand dynamics of your project.

Few examples:

  • views can be methods generated by factory-methods.

  • a view can render different templates in different situations.

  • Urls can be generated dynamically

  • Custom url reslover can be used

  • Variable can be used in {% extend %} tag. Lets say one base template for authenticated user and other for anonymous.

Tools which gives you a lot of visual information about project is common to java world but not to python.

One great advantage of python is that it allows to write readable code fast. Usually well written and well structured code explains it self quite well without additional tools.

To ease the process of template/view finding you should have good structure of your code and maybe invent some project-level naming conventions for views/templates/urls.

like image 168
Ski Avatar answered Nov 07 '22 08:11

Ski