0

現在構築中のウェブサイトの一部として Satchmo を使用しています。現時点では、Satchmo の Category クラスにさらに関数を追加しようとしていますが、Satchmo ファイルに変更を加える予定はありません。そこで、Category クラスをサブクラス化すると、Satchmo Category のすべてのプロパティとメソッドを含む新しいクラスが作成され、独自のクラスを追加できるようになると考えました。ただし、Python のサブクラス化がそのように機能しないか、間違っています。カテゴリをサブクラス化するために使用しているコードは次のとおりです。

from product.models import Category


class MyCategory(Category):
    """ additional functions to pull data from the Satchmo store app """

Category クラスから通常使用できるメソッドの 1 つは次のとおりです。

Category.objects.root_categories()

ただし、アクセスしようとすると

MyCategory.objects.root_categories()

次のエラーが表示されます。

AttributeError: 'Manager' object has no attribute 'root_categories'

これを解決するために誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

カスタム マネージャーとモデルの継承に関するドキュメントを読む必要があります。

いずれにしても、親クラスの Manager を継承する Proxy モデルとしてクラスを定義する必要ありますMyCategory

于 2011-01-11T14:56:23.030 に答える