我正在使用Django查询从表中过滤掉一些事务,其中一个事务可能在表中有多个条目。
E.g。样本表
protected void RadSiteMap1_NodeDataBound(object sender, RadSiteMapNodeEventArgs e)
{
DataRowView nodeData = e.Node.DataItem as DataRowView;
e.Node.ToolTip = nodeData["NodeName"].ToString();
}
当前查询:
+---------------+---------+
| TransactionId | Status |
+---------------+---------+
| Txn0 | Pending |
| Txn0 | Success |
| Txn1 | Fail |
| Txn2 | Pending |
| Txn3 | Fail |
| Txn4 | Pending |
| Txn4 | Fail |
| Txn5 | Pending |
+---------------+---------+
我当前的查询返回SampleTable.objects.exclude(status='Fail').exclude(status='Success')
,Txn0
,Txn2
,Txn4
(因为这些标记为待定)。
我需要一个只返回行Txn5
,Txn2
的查询集(因为所有其他事务至少有一个失败或成功事务)。
此外,尝试使用Txn5
,但没有帮助。
答案 0 :(得分:1)
嗯,不是一个直的。但是,首先过滤所有具有失败/成功状态的事务(行)。
success_fail_txns = SampleTable.objects.filter(status='Success')
| SampleTable.objects.filter(status='Fail')
pending_txns = SampleTable.objects.exclude(txnid__in=success_fail_txns)
答案 1 :(得分:0)
您可以使用排除条件
SampleTable.objects.exclude(status__in=['Fail','Success'])