3

https://docs.djangoproject.com/en/dev/topics/db/managers/#modifying-initial-manager-querysetsで説明されているように、カスタムオブジェクトマネージャーを作成しようとしています。

私はこのようなことをしています:

# the model, say Alpha
class MyManager(Manager):
    pass
Alpha.objects = MyManager()

私はそれは何もすべきではないと思います。しかし、これを設定するだけでが発生し'NoneType' object has no attribute '_meta'ます。これはどのように可能ですか?私はこの例にかなり厳密に従っていると思います。

私がチェックしAlpha.objectsたところ、上書き前は後と同じタイプですsvGroup.objects.__class__.__bases__[0]()(したがって、実際にはサブクラスのインスタンスです)。

これは私のもっと愚かな質問の1つになるだろうと感じていますが、私はそれを理解することができません...

4

1 に答える 1

3

モデル定義内にある必要があります。モデルのメタクラスの__new__メソッドで処理しているためです。

class Alpha(models.Model):
    ...
    objects = MyManager()
于 2012-12-25T16:57:37.130 に答える