gpt4 book ai didi

python - 如何比较django中两个不同表的具体值?

转载 作者:行者123 更新时间:2023-12-01 03:50:42 25 4
gpt4 key购买 nike

我有两个表“联系人”,另一个是“订阅者”。我想比较两个表的 Contact_id,并只想显示联系人中存在但订阅者中不存在的那些 Contact_id。这两个表位于两个不同的模型中.

最佳答案

这样的事情应该有效:

Contact.objects.exclude(
id__in=Subscriber.objects.all()
).values_list('id', flat=True)

请注意,这实际上是两个 SQL 查询。我确信有一些方法可以优化它,但这通常效果很好。

此外,values_list 与选择对象无关,它只是修改返回内容的“格式”(ID 列表而不是对象的查询集 - 但两种情况下的数据库记录相同) )。

如果您通过 Subscriber.id 以外的某个字段进行排除(例如:Subscriber.quasy_id):

Contact.objects.exclude(
id__in=Subscriber.objects.all().values_list('quasy_id', flat=True)
).values_list('id', flat=True)

编辑:

此答案假设您的 ContactSubscriber 模型之间没有关系。如果你这样做,那么看看@navit的答案,这是一个更好的选择。

编辑2:

exclude 中的 flat=True 实际上是不需要的。

关于python - 如何比较django中两个不同表的具体值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com