我有一個模型,它有一個名稱字段。它的定義如下按字母順序排序不起作用
name = models.CharField(db_index=True, max_length=150, unique=True)
然後,當我檢索模型時,我想按字母順序對結果進行排序。爲了得到第25,我做到以下幾點:
Company.objects.order_by("name").defer("bic")[:25]
這導致一個有趣的順序:
- 鱷梨戶外有限公司
- 杏計算機
- 香蕉公司
- 蘋果電腦有限公司
這是爲什麼?
我也有以下但它不應該影響順序,應該嗎?
for company in company_list.iterator():
companies[company.id] = company
上面的列表是基於在最近的代碼段companies
打印。
不,這是相關的,但如果你已經切片查詢集返回25個對象,你爲什麼用'.iterator( )'?只有避免將所有對象加載到內存中才有用。 – Selcuk 2015-03-08 17:23:36
也許試試'Company.objects.defer(「bic」)。order_by(「name」)[:25]'或者使用'Company.objects.order_by(「name」)[:25]'完全放棄延遲。 – 2015-03-08 18:02:50
@aus_lacy沒有區別。 – MikkoP 2015-03-08 18:28:11