我有2个模型和一个自定义管理器来过滤掉无效项目:
class List(models.Model):
items = models.ManyToManyField("Item", through="ListItem")
class ListItemManager(models.Manager):
def get_queryset(self):
return super(ListItemManager, self).get_queryset().filter(item__is_active=True)
class ListItem(OrderedModel):
item = models.ForeignKey("Item")
objects = ListItemManager()
为什么这不起作用?
active_list_items = List.objects.first().items # Contains items with `is_active=False` :(
我想对多对多关系使用默认过滤器。通过我的直通模型过滤掉非活动项目的正确方法是什么?