我有一个应用程序,订阅者可以订阅各种列表。 这里的域是:List model/SubscriberModel/ListSubscription model。在
列表类定义包含以下行
subscribers = models.ManyToManyField(Subscriber, through='ListSubscription')
虽然这段代码允许我获得所有订阅者,但我只需要其中的一部分。诀窍在于ListSubscription 类包含标识活动订阅或非活动订阅的“is_active”布尔字段。 有没有一些策略性的解决方案可以在多对多连接中添加“Is_active=True”? 在纯SQL中,我会将此条件添加到join子句中,但不确定Django-ORM方式。在
这里理想的结果是能够有一个queryset来获取具有各自*active“订户的所有列表。在
一个
ManyToMany
字段已经是一个查询集,所以如果您想要活动的订阅服务器,您可以调用它的filter
方法,也许可以通过List
类中的方法。through
表可用于过滤,方法与目标表相同:要返回至少有一个活动订阅服务器的列表,请使用以下查询:
^{pr2}$相关问题 更多 >
编程相关推荐