2014-06-14 62 views
0

我用自己的花式訂購類來擴展django rest,其返回類型是按照某個重要順序的模型列表。Django將模型列表轉換爲保持順序的查詢集?

是否可以將模型列表轉換爲查詢集,同時保持排序?

我已經試過了,但下面的順序丟失:

ModelName.objects.filter(id__in=ids_ordered) 

在此先感謝您的幫助!

+1

這是不可能的。你真的需要一個查詢集?你可以在SQL本身中進行排序嗎?您還可以嘗試更改應用方法的順序,以便首先完成使用查詢集所需的一切,然後轉換爲列表並執行排序。 – knbk

+0

我不,但是'def remove_invalid_fields'我的結果被傳遞到了。 (在這個文件中https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/filters.py)。這在SQL中可能是可能的,但如果可能的話,Id而不是訴諸於此。 – questionman

回答

0

我不確定這是否正是您要求的,但是使用.order_by()方法可以完全且完全地設置查詢集的排序。退房API documentation的全部細節,但你可以這樣做:

Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline') 

如果你正在構建的查詢集的頂部自己看中的排序類,這應該是提供給您。