Django 1.7 AppConfig v.MyModelAppConfig

时间:2015-02-17 00:36:32

标签: django django-1.7

我们刚刚在一个新的1.7项目上实现了Django AppConfig,并且想知道正确的“Python”/“Django”方法是什么?

明确命名它是否更好:

class MyModelConfig(AppConfig):
    ...

或者有什么理由不能命名吗?:

class AppConfig(AppConfig):
    ...

它更整洁但可能不对。

是否有任何理由不明显以第二种方式执行此操作?

文档中的命名使用了示例中的第一种方式,但有什么好的理由吗? https://docs.djangoproject.com/en/1.7/ref/applications/

1 个答案:

答案 0 :(得分:2)

隐藏名字通常是一个坏主意。如果您定义类似的新类AppConfig,则无法再访问旧的AppConfig基类。其他方法是例如:

from django.apps import AppConfig as BaseAppConfig

class AppConfig(BaseAppConfig):

或者:

from django import apps

class AppConfig(apps.AppConfig):

现在,这被认为是一个很好的设计,在这种情况下甚至不需要,因为通常每个应用只使用一个AppConfig。然而,将好的设计模式作为习惯而不是在它破坏时的例外总是一个好主意。甚至可能存在边缘情况,您需要针对不同情况使用多个应用配置。