2011-08-19 17 views
7

我有一个Django应用程序,有一个叫“应用程序”模块
现在这个模块有一个名为“urls.py”其中有一个文件变量叫做“HOME_URL如何使用字符串来访问一个Python模块变量[Django的]

我在做什么?

app_label = "app" 
url = __import__(app_label).urls.HOME_URL 
print url 

这显然是行不通的,但我希望你得到了什么,我试图做的,如果不是请评论,我会编辑的问题,以包含更多的信息。

+0

这在一般情况下适用于我。你会得到什么样的错误信息? –

回答

6

您可以使用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内工作。

6

如果您使用的是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实际上是一个模块。

相关问题