Are there any purposes for the management folder in Django other than commands?

人走茶凉 提交于 2019-12-08 15:05:23

问题


Why are management commands not in their own app-level folder? Are there other items which can be added to the management directory or is this structure purely vestigial?


回答1:


I don't know the history, but it seems semi-vestigial to me. As for other stuff that can be put in the management dir, the comment about signals above hints at one answer.

One thing I do when trying to answer such questions is to look at the contrib apps to see what they do. Some interesting bits to be found:

  • auth/management/__init__.py
  • sites/management.py

Note that in the second one, the management module is a .py file rather than a directory.




回答2:


Another thing that needs to be placed in the management module (either in management/__init__.py or management.py) is any listeners to the django.db.models.signals.post_sync signal.




回答3:


It is a skeleton of django's general design. Almost every project will contain multiple apps, so the project is really a container of apps with a shared configuration.

You can add other items to the project level folder, but the design suggests only high level cross-app items should be. Examples are urls and settings.



来源:https://stackoverflow.com/questions/5836075/are-there-any-purposes-for-the-management-folder-in-django-other-than-commands

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!