2024-09-30 14:35:57 发布
网友
我得去问问。所有列表和订阅列表
alllists = List.objects.filter(datamode = 'A') subscriptionlists = Membership.objects.filter(member__id=memberid, datamode='A')
我需要一个名为unsubscriptionlist的queryset,它拥有除订阅列表中的记录之外的所有列表中的所有记录。如何做到这一点?
我在这里看到了两个选择。
diff = [] for all in alllists: found = False for sub in subscriptionlists: if sub.id == all.id: found = True break if not found: diff.append(all)
diff = List.objects.filter(datamode = 'A').exclude(member__id=memberid, datamode='A')
自从Django 1.11以来,queryset在其他新方法中有一个difference()方法。(来源:https://docs.djangoproject.com/en/1.11/releases/1.11/#models)
difference()
qs_diff = qs_all.difference(qs_part) # Capture elements that are in qs_all but not in qs_part
另请参见:https://stackoverflow.com/a/45651267/5497962
您应该能够使用设置操作差异来帮助:
set(alllists).difference(set(subscriptionlists))
我在这里看到了两个选择。
一。手动过滤(相当难看)
2。再问一次
自从Django 1.11以来,queryset在其他新方法中有一个
difference()
方法。(来源:https://docs.djangoproject.com/en/1.11/releases/1.11/#models)另请参见:https://stackoverflow.com/a/45651267/5497962
您应该能够使用设置操作差异来帮助:
相关问题 更多 >
编程相关推荐