12

「app」というモジュールを含むdjangoアプリケーションがあります
。このモジュールには、「HOME_URL」という変数を持つ「urls.py」というファイルがあります。

私は何をしようとしていますか?

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

それは明らかにうまくいきませんが、私がやろうとしていることを理解していただければ幸いです。そうでない場合は、質問を編集してより多くの情報を含めます。

4

2 に答える 2

13

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 モジュールとパッケージに関するいくつかの説明。

パッケージはファイルを含むフォルダーであり、__init__.py. あなたの「アプリ」「モジュール」は実際にはパッケージのようです。

モジュールはパッケージ内のファイル.pyです。だからあなたurls.pyは実際にはモジュールです。

于 2015-09-12T10:06:30.617 に答える
8

import_moduledjango プロジェクトのルートに関連するモジュールをロードするために使用できます。

from django.utils.importlib import import_module
app_label = "app"
url = import_module("%s.urls" % app_label).HOME_URL 

これは、django プロジェクト内または./manage.py shell.

于 2011-08-19T13:07:10.407 に答える