0

django が templatetags を使用するのと同じように、ユーザーが特定のディレクトリ構造を持つ必要があるアプリケーションがあります。実行時に foo という名前のアプリケーションを django プロジェクトからインポートする方法を知りたいのですが?
さらに、アプリケーションが存在する場合、アプリケーション foo の特定のモジュールをインポートするにはどうすればよいですか?

4

1 に答える 1

2

あなたの質問には、いくつかの明確な詳細が必要だと思います。現時点では、アプリケーション (django アプリケーションのことですか?) を pythonpath (たとえば、プロジェクト ディレクトリ内) に配置するのと同じくらい簡単に思えます。

try:
    import foo
except ImportError:
    pass # application mustn't be on pythonpath
else:
    from foo import specific_module
    # do stuff

要件に応じて、このコードはビュー内にある場合も__init__.pyあれば、かなり早い段階で発生させたい場合はプロジェクトの場合もあります。django の起動プロセスはまもなく改善されstartup.pyます。機能に注目してください。

動的な名前でモジュールをインポートする必要がある場合は、以下を参照してください。__import__

また、django 内に django.utils.importlib.import_module と呼ばれるヘルパー メソッドがあります (これは を使用します__import__) 。

于 2011-03-07T05:27:33.593 に答える