2012-11-07 63 views
3

我不得不作出這樣的查詢:django:連接2個查詢或特殊訂單?

similar_brokers_ = Profile.objects.filter(Q(tp=broker.tp) | Q(md=broker.md)).exclude(Q(id=broker.id))[:4] 

我需要得到4個類似的經紀人,它們具有相同的tp場或md

所以這個查詢做的,但我需要券商具有相同tp現場先走,後跟經紀人應該去md一樣的領域。

我該如何做得更好?

例如:

broker1 with tp=1, md=100 
broker2 with tp=2, md=100 
broker3 with tp=1, md=99 

得到經紀人similat到broker1: 首先應該去broker3(與tp = 1)和後broker2(與md = 100)

回答

1

你嘗試用order_by('tp', 'md')?請參閱文檔order_by

+0

但是,如果broker1的tp = 2,並且其他經紀人的tp = 1與broker1的md相同將是第一個原因1 <2您知道嗎? – yital9

+0

你可以顯示0.一組數據和1.你想要的結果列表。 – jpic