在我的Django应用程序中,有几个应用程序是通过apps.py文件激活了AppConfig的,并且有一个BaseAppConfig
类:
class BaseAppConfig(AppConfig):
launchpad = None
def __init__(self, app_name, app_module):
AppConfig.__init__(self, app_name, app_module)
self.launchpad = self.Launchpad()
class Launchpad:
show = True
icon = "fa fa-cogs"
我在以下自定义应用中使用此BaseAppConfig
:
class CustomerConfig(BaseAppConfig):
name = 'customer'
class Launchpad:
icon = "fa fa-book"
,当我尝试使用show
到达CustomerConfig
的{{1}}属性时,它将返回customer_config.launchpad.show
。
Python像new一样覆盖所有内部类。
如何仅扩展内部类的属性?
答案 0 :(得分:1)
这是因为您要覆盖Launchpad
类。因此,它无法退回并根据需要解析为BaseAppConfig
。
您需要将其更改为该类,以使其起作用
class CustomerConfig(BaseAppConfig):
name = 'customer'
class Launchpad(BaseAppConfig.Launchpad):
icon = "fa fa-book"
这样,它可以引用基类Launchpad
实例。