プロジェクトに imagestore アプリをインストールしようとしています。デフォルトのモデルが正常に作成され、他のすべてのパーツが適切に機能しています。
ただし、ベース (抽象) モデルを拡張し、いくつかの複雑なメカニズムによって独自のモデルを作成する機能があります。これは私のモデルです:
from django.db import models
from imagestore.models.bases.album import BaseAlbum
class Newalbum(BaseAlbum):
title = models.CharField("title", max_length=128)
class Meta(BaseAlbum.Meta):
app_label = "imagestore"
abstract = False
またIMAGESTORE_ALBUM_MODEL = 'art.models.Newalbum'
、設定に文字列があります。syncdb を実行すると、バックエンド モジュール「art.models」が「Newalbum」クラスを定義していないことがわかります。(「モジュール」オブジェクトには属性「Newalbum」がありません)。しかし、もちろんそれは定義しました。
そして奇妙さは始まったばかりです。imagestore がモデルを取得しようとしている場所にデバッグ ステートメントを配置すると、適切なモジュール (既にインポートされている) と適切なクラス名 (文字列) が出力されます。しかし!dir(mod)
「from imagestore.models.bases.album import BaseAlbum」の前に表示された変数のみを出力します。上記の例では、「モデル」とデフォルトの下線付き属性のみを表示します。なんで?モジュールのインポートについてわからないことはありますか?
私はすでに、設定プロパティ、djangoのバージョン(および必要なアプリ)、app_labelなどの多くの厄介な組み合わせでインストールしようとしました。設定に IMAGESTORE_ALBUM_MODEL を追加しないとテーブルが作成されますが、このモデルには BaseClass の動作がありません。それで、私は何を間違っていますか?