【发布时间】:2018-06-17 10:22:02
【问题描述】:
我正在尝试将多个条件应用于我的过滤器。模型是这样的
class modelChat(models.Model):
source = models.ForeignKey(modelEmployer,related_name = 'rsource',on_delete=models.CASCADE,null=True,default=None,blank=True)
job = models.ForeignKey(modelJob,on_delete=models.CASCADE,null=True,default=None,blank=True)
destination = models.ForeignKey(modelEmployer,related_name = 'rdestination',on_delete=models.CASCADE,null=True,default=None,blank=True)
最初,我试图获取一个基于工作的涉及 2 方的聊天实例。在某一时刻,源可以是目的地,有时目的地可以是源。但工作保持不变。
这就是我的查询的样子
querySet = modelChat.objects.filter(
(Q(source=modelEmployerSourceInstance) | Q(destination=modelEmployerSourceInstance))
&
(Q(destination=modelEmployerDestinationInstance) | Q(destination=modelEmployerDestinationInstance))
&
Q(job_id=job_id)
)
作业 ID 正确,我知道数据库中只有一项。但是,此查询始终返回一个空项目。任何建议为什么这是错误的以及如何解决它?
【问题讨论】:
标签: python django django-models django-orm