最新Django-1.7版本的“App-loading refactor”功能有什么好处?

时间:2014-09-11 10:02:35

标签: django django-models

我阅读了文档,但无法理解如何删除models.py的需求将改善系统。

1 个答案:

答案 0 :(得分:2)

这些好处以子弹形式here列出。您可以看到,不需要models.py只是新方法的一个明显好处。

  
      
  • 应用程序可以在启动之前,在Django执行任何其他操作之前使用其配置的ready()方法运行代码。
  •   
  • 应用程序标签即使在models.py之外定义时也会正确分配给模型。您不必再明确设置app_label。
  •   
  • 如果应用程序没有任何模型,则可以完全省略models.py。
  •   
  • 可以使用应用程序配置的label属性重新标记应用程序,以解决标签冲突问题。
  •   
  • 可以使用应用程序配置的verbose_name在管理员中自定义应用程序的名称。
  •   
  • 当Django启动时,管理员会自动调用autodiscover()。因此,您可以从URLconf中删除此行。
  •   
  • Django一旦启动就会通过一个确定且直接的过程导入所有应用程序配置和模型。这样可以更容易诊断导入问题,例如导入循环。
  •   

此外,与应用程序加载有关的各种错误都是在 app-loading refactor 的标题下修复的。例如,过去曾经是系统的某些部分从前到后看了INSTALLED_APPS而其他部分从后到前看。现在订单在整个系统中都是一致的。

对于models.py,当没有必要将模型作为应用程序时,使用它来标记应用程序是没有意义的(例如,可重用的应用程序可以只有模板,说,或管理命令)。您曾经必须包含一个空的models.py文件;现在你可以完全放弃它。