【发布时间】:2023-04-11 11:18:01
【问题描述】:
给定 django 1.8、python 2.7.5、postgresql 和以下通用模型:
class restAPI(models.Model):
rest_id = models.CharField(max_length=20)
rest_host = models.CharField(max_length=20)
rest_mode = models.CharField(max_length=20)
rest_state = models.CharField(max_length=20)
class soapAPI(models.Model):
soap_id = models.CharField(max_length=20)
soap_host = models.CharField(max_length=20)
soap_asset = models.CharField(max_length=20)
soap_state = models.CharField(max_length=20)
在完美世界中,soapAPI.soap_host 和 restAPI.rest_host 将完美匹配。然而,这种情况很少见。我正在尝试查找并返回soapAPI 中存在但不在restAPI 中的任何主机。我目前有一种工作方法,在将这些数据保存到 django 中的自己的模型之前,我使用 python 解析这些数据,但我必须相信我可以使用模型本身来做到这一点(我认为这也会更有效) .
如何使用 django 提供的 orm 或使用 .raw(),最好使用 orm 返回 soapAPI 的 ENTIRE 模型,其中 restAPI.rest_host 中缺少 soapAPI.soap_host?任何和所有的帮助都将不胜感激,因为这对我来说是一次学习经历。提前谢谢你。
EDIT1
完全开放地将关系建模为某种形式的答案。
EDIT2
保持开放,因为我必须相信有比多个查询集更好的方法。
EDIT3
另外有没有办法做多个__in 之类的?我实际上需要返回整个soapAPI 模型,其中restAPI.rest_host 中缺少soapAPI.soap_host AND soapAPI.soap_state 是“实时”。
【问题讨论】:
标签: python django postgresql django-models orm