は、いくつかの小さな偏差でDjangoの1.10のためのtutorialに続いて期待通りに動作していないサブディレクトリ内のアプリケーションモデル:ジャンゴ1.10から
polls
アプリはmysite/apps/polls
に存在し、apps.polls
経由でプロジェクトにアクセスされます。- デフォルト
models.py
ファイルが削除されていて、新しいモジュールが追加されました:
mysite/ | |- apps/ | |- polls/ | | |- models/ | | | |- __init__.py | | | |- Question.py | | | |- Choice.py
apps/polls/models/__init__.py
はQuestion
とChoice
の両方を輸入している、との両方のモデルはdjango.db.models.Model
から拡張しています。
問題
makemigrations
を実行すると、例外がスローされます:それはdjango.db.models.Model
から延びるれるよう
Traceback (most recent call last): File "/mysite/lib/python3.5/site-packages/django/db/models/fields/related.py", line 742, in __init__ to._meta.model_name AttributeError: module 'apps.polls.models.Question' has no attribute '_meta'
はしかし、Question
モデルは明らかに、_meta
属性を持っています。 Django 1.7以降では、_meta.app_label
を定義する必要はありません(いずれにしても、app_label
の定義は機能しません)。プロジェクト全体で追加のリファクタリングをせずに、サブディレクトリのモデルを使用できるようにするために必要なことは何ですか?
追加リソース
- Entire traceback
apps/polls/models/__init__.py
apps/polls/models/Choice.py
apps/polls/models/Question.py
「Question」_module_には属性「_meta」がありません。あなたの命名計画が混乱を招いているようです。Btw、あなたのアプリケーションのルートパッケージにあなたのモデルをインポートすることはできません( 'apps/polls/__ init __。py')。 – knbk
@knbkよ、良いキャッチ。だから問題は、何らかの理由で、「質問」が_モジュール_として取り上げられているということです。なぜか、それを解決する方法は?そして、それは実際はちょっとしたタイプミスです。モデルは 'apps/polls/models/__ init __。py'にインポートされています。私はそれを修正するために投稿を編集します。 – Ben
完全なトレースバックとそのファイルを 'apps/polls/models /'の中に表示できますか? – knbk