我们刚刚在一个新的1.7项目上实现了Django AppConfig,并且想知道正确的“Python”/“Django”方法是什么?
明确命名它是否更好:
class MyModelConfig(AppConfig):
...
或者有什么理由不能命名吗?:
class AppConfig(AppConfig):
...
它更整洁但可能不对。
是否有任何理由不明显不以第二种方式执行此操作?
文档中的命名使用了示例中的第一种方式,但有什么好的理由吗? https://docs.djangoproject.com/en/1.7/ref/applications/
答案 0 :(得分:2)
隐藏名字通常是一个坏主意。如果您定义类似的新类AppConfig
,则无法再访问旧的AppConfig
基类。其他方法是例如:
from django.apps import AppConfig as BaseAppConfig
class AppConfig(BaseAppConfig):
或者:
from django import apps
class AppConfig(apps.AppConfig):
现在,这被认为是一个很好的设计,在这种情况下甚至不需要,因为通常每个应用只使用一个AppConfig
。然而,将好的设计模式作为习惯而不是在它破坏时的例外总是一个好主意。甚至可能存在边缘情况,您需要针对不同情况使用多个应用配置。