Raj*_*kar 20 python django django-queryset
我必须查询集.alllists和订阅列表
alllists = List.objects.filter(datamode = 'A')
subscriptionlists = Membership.objects.filter(member__id=memberid, datamode='A')
Run Code Online (Sandbox Code Playgroud)
我需要一个名为unsubscriptionlist的查询集,它拥有除了订阅列表中的记录之外的alllists中的所有记录.怎么做到这一点?
Bri*_*her 15
您应该能够使用设置操作差异来帮助:
set(alllists).difference(set(subscriptionlists))
Run Code Online (Sandbox Code Playgroud)
mar*_*che 14
从Django 1.11开始,QuerySets difference()
在其他新方法中都有一种方法.(来源:https://docs.djangoproject.com/en/1.11/releases/1.11/#models)
qs_diff = qs_all.difference(qs_part) # Capture elements that are in qs_all but not in qs_part
Run Code Online (Sandbox Code Playgroud)
另请参阅:https://stackoverflow.com/a/45651267/5497962
Sil*_*ght 10
那么我在这里看到两个选择.
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)
Run Code Online (Sandbox Code Playgroud)
diff = List.objects.filter(datamode = 'A').exclude(member__id=memberid, datamode='A')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14106 次 |
最近记录: |