0

2 つのモデルとカスタム マネージャーがあります。

class ActiveModelAManager(models.Manager):
    def get_query_set(self):
        return super(ActiveModelAManager,self).get_query_set().filter( active = True)

class ModelA(models.Model):
    name = CharField(....)
    active = BooleanField()

    active_models = ActiveModelAManager()
    objects = models.Manager()

class ModelB(models.Model):
    modelA = ForeignKey(ModelA)

私の見解では、ModelA をテンプレートに渡しています。ModelB_set にアクセスしたいのですが、オブジェクトの代わりに active_models マネージャーを使用していますか?

だから私がこれをやっているなら:

{{ ModelB.modelb_set.all }} 

オブジェクト マネージャーにアクセスしていますが、active_models にアクセスしたいと考えています。ビューからカスタム マネージャーにアクセスしようとすると、同じ問題が発生します。

どうすればこれを達成できますか?

4

1 に答える 1

1

あなたの質問が正しいかどうかはわかりませんが、アクティブな ModelA オブジェクトを参照する modelB オブジェクトを照会するには、ビューに書き込むだけです。

active_modelA_objects = ModelA.active_models.all().values_list('pk', flat=True)
modelB_objects_with_active_modelA = ModelB.objects.filter(modelA__in=active_modelA_objects)

関連ドキュメント:

値リスト

__の

于 2012-07-23T10:49:36.783 に答える