2017-05-24 10 views
1

をソートし、「中国は」は常にドロップダウンリストの一番上にある必要があります...ここで私は名前で「国のリストをソートしたいリスト#sort

が私のコード..です

<option value="">Country...</option> 
<t t-foreach="all_country.sorted(key=lambda x:x.name, reverse=False)" t-as="x"> 
<option t-att-value="x.id" t-att-selected="int(x.id) == int(((country_id or -1) if country_id else -1))"> 
<t t-esc="x.name"/> 
</option> 

答えて

-1

ちょうど彼らが

0

を思い付く場合は、「日本」を見つける場合はFalseそして、あなたは「中国」を見つけた場合Falsetupleを返すために、あなたのソートキーを変更する必要がありますが、ループに入る前に、ハードそれらをコーディングしてからスキップ、次に実際の値。名前は「中国」や「日本」ではない場合

だから、すべてがTrueですし、自然なソート順を持っていますが、これらの2のために、あなたはタプルのFalse,TrueTrue,Falseと自然ソート順序は、彼らが最初に来るになり得る:

あなたが reverse=Falseを必要としない

key=lambda x:(x.name!="China",x.name!="Japan",x.name) 

ノートを次のように はあなたのキー引数を変更

。これはデフォルトです。

関連する問題