2016-08-04 12 views
0

モデルを複数のファイルに分割してフォルダに配置しました。ここに木の構造があります。フォルダの名前を覚えておいてください。Djangoはモデル名のフォルダをモデルとして検出しません

from .VehicleModel import * 
from .PersonModel import * 

私はモデルクラスを作成した - それは、資本との 'モデル' M.

|-- Models 
| |-- __init__.py 
| |-- PersonModel.py 
| `-- VehicleModel.py 

__init__.pyファイルの内容があります。今私が実行しているときpython manage.py makemigrations MyAppNameそれはNo changes detected in app 'MyAppName'

私はフォルダーフォーム 'モデル'を 'モデル'に名前を変更するとうまくいきました。

しかし、私は同じようにビューを分割したビューを複数のファイルにまとめ、フォルダに配置しました。木構造は以下の通りです。

`-- Views 
    |-- DashboardView.py 
    |-- __init__.py 
    |-- __pycache__ 
    | |-- DashboardView.cpython-34.pyc 
    | |-- __init__.cpython-34.pyc 
    | `-- VehicleView.cpython-34.pyc 
    `-- VehicleView.py 

ここでは、フォルダ名は大文字の「Views」で、物事は正常に動作しています。 djangoは不平を言うことはありません。

Modelsという名前のフォルダに配置したときに、モデルクラスが検出されない理由を理解できません。

答えて

3

Djangoはあなたの意見がどこにあるかわからない、または気にしません。あなたは "thesearedefinitelynotviews"と呼ばれるフォルダにそれらを置くことができます、あなたがそこからそれらをインポートする限り、それはまだ動作します。

モデルが異なります。 Djangoは起動時にそれらを見つけることができる必要があるので、関係を正しく設定するようなことができます。そのためには、modelsをインポートしてアクセス可能でなければなりません。

+0

モデルを分割するより良い方法は何ですか。 (1)上記のやり方、または(2)直接modelsディレクトリに配置されたファイルmodels.pyのすべてのモデルをインポートする。 models.pyには 'from Models/VehicleModel.py import *'が含まれます – User42

+0

また、models.pyファイル内の 'Models/VehicleModel import *'からこのようにインポートすると、エラーが発生します - >無効な構文...スラッシュを指すニンジンシンボル – User42

関連する問題