継承モデルのMetaクラスのプロパティを使用して、継承ツリーの上位にある抽象モデルで定義されたフィールドを構成したいと思います。
class NamedModel(models.Model):
class Meta:
abstract = True
verbose_name = 'object'
name = models.CharField("Name",
max_length=200,
db_index=True,
help_text="A meaningful name for this %s." % Meta.verbose_name)
# see what I'm trying to do here?
)
...
class OwnedModel(NamedModel):
class Meta(NamedModel.Meta):
verbose_name = 'owned object'
OwnedModelフォームの名前フィールドのヘルプテキストに「この所有オブジェクトの意味のある名前」と表示してほしい。ただし、そうではありません。「owned」という単語が欠落しています。これは、モデルのセットアップ時に、OwnedModel.Metaではなく、NamedModel.Metaのverbose_nameが使用されていることを示しています。
これは、継承の観点から私が期待していることではありません。Meta.verbose_nameがフィールドの抽象モデルではなく、非抽象モデルクラスの値を参照するようにフィールドを作成する方法はありますか。定義されましたか?
それとも私は気が狂っていますか?
(これは些細な例のように思えるかもしれませんが、それは次のとおりです。しかし、私がやろうとしているより重要で複雑なことの要点を説明するためだけのものです)
よろしくお願いします。