from django.core.exceptions import FieldError
#This is a method of a class
def _order_item_list(self, item_list, order_items_by, previous_order_by):
if order_items_by == previous_order_by:
order_items_by = '-' + order_items_by
try:
result = item_list.order_by(order_items_by)
except FieldError:
result = item_list
return result, order_items_by
現在,當我通過生成的鏈接後面的有效字段進行排序時,一切正常。當我編輯鏈接並添加一些虛擬字段名以進行排序時,應該通過此例外來捕獲它,並且應該返回原始列表。但它並沒有發生,相反我總是從django得到一個FieldError。django order_by FieldError異常無法捕捉到
FieldError在...
無法解析關鍵字u'fgsdffds'到現場。選擇是:...
您是絕對正確的。以後會引發異常,這肯定是因爲django的優化,以避免許多單獨的數據庫操作......謝謝 – andrean