4

私は2つのdjangoマネージャーを持っています

投票マネージャー

class VoteManager(model.Manager):

    def all_with_vote_info(self):
        qs = super(VoteManager, self).get_query_set()
        qs = qs.annotate(score=Sum('votes__score', distinct=True))
        return qs

    ....

ソフト削除マネージャー

class SoftDeleteManager(models.Manager):

    def all_active(self):
        qs = super(SoftDeleteManager, self).get_query_set()
        qs = qs.filter(time_deleted=None)
        return qs

    ....

VoteManager.all_with_vote_infoSoftDeleteManager.all_active、および任意の数のマネージャー メソッドからクエリセットの結果を連鎖させるにはどうすればよいですか?

4

2 に答える 2

2

解決策を見つけました:PassThroughManager

https://django-model-utils.readthedocs.org/en/latest/managers.html#passthroughmanager

アップデート:

PassThroughManager非推奨になりました。代わりに、Djangoの組み込みQuerySet.as_manager()および/またはManager.from_queryset()ユーティリティを使用してください。

于 2012-12-28T21:20:24.173 に答える