我有一个Django应用程序,有一个叫“应用程序”模块
现在这个模块有一个名为“urls.py”其中有一个文件变量叫做“HOME_URL”如何使用字符串来访问一个Python模块变量[Django的]
我在做什么?
app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url
这显然是行不通的,但我希望你得到了什么,我试图做的,如果不是请评论,我会编辑的问题,以包含更多的信息。
我有一个Django应用程序,有一个叫“应用程序”模块
现在这个模块有一个名为“urls.py”其中有一个文件变量叫做“HOME_URL”如何使用字符串来访问一个Python模块变量[Django的]
我在做什么?
app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url
这显然是行不通的,但我希望你得到了什么,我试图做的,如果不是请评论,我会编辑的问题,以包含更多的信息。
您可以使用import_module
加载相对于django项目的根的模块。
from django.utils.importlib import import_module
app_label = "app"
url = import_module("%s.urls" % app_label).HOME_URL
这应该在您的django项目或./manage.py shell
内工作。
如果您使用的是Django 1.7+,则应该使用import_string
。
from django.utils.module_loading import import_string
app_label = "app"
url = import_string("%s.urls.HOME_URL" % app_label)
顺便说一句,关于Python模块和包的一些澄清。
A 包是一个包含文件的文件夹,其中包含一个名为__init__.py
的文件。这听起来是你的'应用程序''模块'实际上是一个包。
A 模块是包内的.py
文件。所以你的urls.py
实际上是一个模块。
这在一般情况下适用于我。你会得到什么样的错误信息? –