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。

在...的FieldError

无法将关键字u'fgsdffds'解析为字段。选择是:...

最佳答案

这意味着有错别字,否则其他地方会发生异常。插入调试行:

 import pdb; pdb.set_trace()

在try-except之前,看看代码是如何执行的。尝试使用PUDBIPDB调试器,而不是标准调试器。当您拥有调试器时,许多问题都会消失,并且可以确切地看到出了什么问题。

10-08 18:34