我需要用django orm选择行。我需要等同于这样的查询
select * from order where (user_from = u and f1 not is null) or (user_to = u and f2 not is null)
我尝试这样做:
Order.objects.filter(user_from = self).exclude(f1 = None)+Order.objects.filter(user_to = self).exclude(f2 = None)
但是在orm中没有联盟。怎么可能由orm完成这样的任务? (我看到一个解决方案,在我的模型中添加一些字段,但它无需添加字段即可解决它)
答案 0 :(得分:1)
看看Q objects。您可以执行以下操作:
Order.objects.filter(
Q(user_from = u, f1__isnull = False) | Q(user_to = u, f2__isnull = False)
)
警告:这是未经测试的代码。最好看到生成的实际SQL查询,并验证这确实是您所需要的。