0

私のDjangoアプリ(それを呼びましょうapp)には、いくつかのファイルがあります:views.pymodels.pyそして私は自分自身のファイルを作成しましたutils.py

残念ながら、次のようにviews.py言うだけでモデルをファイルに含めることができます。

from models import *

私のutils.pyファイルでは、同じことを試し、モデルを操作すると、例外が発生しますGlobal name: MyModel is not definedmodels.py確かにが含まれていますutils.py。これは循環的な依存関係である可能性があることは理解していますが、最近の変更を追加するまでは問題なく機能しました。これが原因ですか?もしそうなら、私のutilsファイルをリファクタリングする唯一の解決策ですか?

4

1 に答える 1

1

相互依存関係があることはすでにご存知でしょう。それを回避する方法は、utilファイルを2つに分割して、モデルを呼び出す必要がある部分を分離することにより、循環インポートを回避できるようにすることです。

また、Mipadiが提案しているように、グローバルインポートステートメントを使用する代わりに、メソッドスコープでインポートを行うことができます。

さらに、それはあなたがモデルをどのように使おうとしているのかによります。たとえば、「app_name.class_name」でモデルにアクセスできますが、実際には使用するコンテキストによって異なります。

于 2012-11-27T19:10:18.423 に答える