使用另一個傢伙處理項目。這是一些代碼,我在view.py
寫信給排序基於某種形式的數據的查詢集:基於表單值對Django QuerySet進行排序的最有效方法
# Get sort by value
sort_by = search_form.cleaned_data.get('sort_by', SORT_BY_LAST_VISIT)
# Gather stops
stops = Stops.approved_objects.filter(**query_attributes)
# Do neccessary sorting
if sort_by == SORT_BY_PRICE:
stops = stops.order_by('price')
else: # By default, sort by last visted
stops = stops.order_by('last_visited')
然而,昨天晚上我的同事修改了代碼,以這樣的:
# Get sort by value
sort_by = search_form.cleaned_data.get('sort_by', SORT_BY_LAST_VISIT)
# Gather stops based on sort
if sort_by == SORT_BY_PRICE:
stops = Stops.approved_objects.filter(**query_attributes).order_by('price')
else: # By default, sort by last visted
stops = Stops.approved_objects.filter(**query_attributes).order_by('last_visited')
他SVN評論:More efficient
。
根據Django's documentation,兩者將相當於一個數據庫查詢。有可能我錯過了別的東西。也許事實上,我設置了兩次停止變量(stops = ...
)?
因爲我不能把他抱到星期一,我以爲我會去這個社區。
+1。像往常一樣,@Ignacio非常有責任感。 – 2010-11-14 01:39:48