3

私はそのようなクエリを作成する必要があります:

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

tp同じフィールドまたはmdフィールドを持つ 4 つの同様のブローカーを取得する必要があります

したがって、このクエリはそれを行いますが、同じtpフィールドを持つブローカーが最初に移動する必要があり、その後、同じmdフィールドを持つブローカーに移動する必要があります。

どうすればもっとうまくできますか?

例えば ​​:

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

に似たブローカーを取得しbroker1ます: 最初にbroker3( tp=1 を使用) してからbroker2( md=100 を使用)

4

1 に答える 1

1

やってみましたorder_by('tp', 'md')か?order_byについてはドキュメントを参照してください

于 2012-11-07T17:02:16.053 に答える