我有两个型号和一个自定义管理器:
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。 当我尝试通过我的视图访问自定义管理器时,同样的问题就出现了。
任何想法我怎么能做到这一点?
答案 0 :(得分: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)
相关文档: