动态导入Django中的url提供';str';对象不可调用
我正在尝试编写一些代码,以便在django项目中动态导入“类似插件”的应用程序。我正在使用Django 1.10 我对动态导入Django中的url提供';str';对象不可调用,django,Django,我正在尝试编写一些代码,以便在django项目中动态导入“类似插件”的应用程序。我正在使用Django 1.10 我对django.apps.AppConfig类进行了子类化,并使用它来标记插件: from django.apps import AppConfig class AutomationAppConfig(AppConfig): def get_url(self): return self.name 然后,在我的项目main urls.py中,我在主“静态”u
django.apps.AppConfig
类进行了子类化,并使用它来标记插件:
from django.apps import AppConfig
class AutomationAppConfig(AppConfig):
def get_url(self):
return self.name
然后,在我的项目main urls.py中,我在主“静态”urlpatterns初始化之后添加了以下代码:
...
from slae.util import AutomationAppConfig
from django.apps import apps
for module in iter(apps.get_app_configs()):
if isinstance(module, AutomationAppConfig):
url = module.get_url()
urlpatterns.append(url(r'^%s/' % url, include('%s.urls' % module.name), name = module.name))
但当服务器(重新)加载时,会出现以下错误
我缺少什么?
url
是在django.conf.urls的中定义的函数。但是,代码中的下一行将覆盖此变量并在其中存储一个字符串
url = module.get_url()
将此变量更改为其他变量,例如:
url_route = module.get_url()
urlpatterns.append(url(r'^%s/' % url_route, include('%s.urls' % module.name), name = module.name))
非常感谢。我确信这是微不足道的,我只是看不见。。。我觉得自己很笨
url = module.get_url()
url_route = module.get_url()
urlpatterns.append(url(r'^%s/' % url_route, include('%s.urls' % module.name), name = module.name))