【发布时间】:2022-11-29 20:33:32
【问题描述】:
是否有更简洁的方法来检查数据透视表中是否存在项目的所有提供者? 例如。我的项目很少,如果其中一个项目有所有给定的提供者,那么方法应该返回 True,否则返回 False
for item in items:
exists_count = 0
for provider in providers:
if ItemProviderConn.objects.filter(
item_id=item.pk,
provider_id=provider.pk,
):
exists_count += 1
else:
break
if exists_count == len(providers):
return True
return False
【问题讨论】:
-
请将您的模型添加到问题中
-
@IainShelvington - 你真的不需要它,你可以看到有问题的架构。
-
@MaximDanilov 从问题中不清楚
ItemProviderConn模型有什么约束,如果item和provider在一起是唯一的,那么解决方案可能比如果不是的话更简单 -
我认为这是通过模型 ItemProviderConn 从项目到提供者的简单 m2m。在问他们做了一个简单的过滤器,没有特别的地方。
标签: django