私はdjangoアプリケーションに関連するいくつかのpythonスクリプトを実行しています。 私は手動でいくつかのpythonスクリプトを含むが、./manage.py startapp scripts
を使って作られていないフォルダ(scriptsという名前)を作りました。このフォルダに加えてmodelsapp
djangoアプリ(私のモデルが含まれています)とproject
フォルダにはsettings.py
とurls.py
が含まれています。Django:モデルをグローバルにインポートすることができません
スクリプトを実行するために./manage.py shell < scripts/script.py
を実行します。
は今こここれはかなりうまく機能し、私のscripts.py
from modelsapp.models import *
print(Room.objects.all())
のサンプルコードです。次に、2番目のケースを考えてみましょう。私は今ちょうど./manage.py shell
を実行し、次のcommands-
>>>from modelsapp.models import *
>>>def init():
... print(Room.objects.all())
...
>>>init()
また、これはかなりうまく機能置きます。しかし、今、最初のケースでファイルを介して上記のコードを実行すると、NameError: name 'Room' is not defined
私が今インポートしたモデルクラスは、アクセシビリティの機能の中にないようです。 この動作は少し奇妙です。
助けてください。私が何か言及しなかった場合は、以下のコメントをしてください。
編集:これは少し奇妙な行動であり、それへの答えを見つけることができませんので、私はちょうど今のように行う作業を取得するためのパラメータとして機能init()
に直接クラスRoom
を渡すつもりです。
「project.modelsapp.models import *」または「modelsapp.models from Room'」についてはどうですか? – ozgur
最初にインポートエラーを返します –
第2のものは同じことを言います。 –