Django kwargs 扩展不适用于 startswith

Django kwargs expansion not working with startswith

我遇到了一个与 question 310732 非常相似的问题,按照那里的建议,我在我的 kwargs 生成中实现了 .format() 解决方案。

一个小例子的转储如下所示:

{'username_fragment_1__startswith': u'joey'}

其中 "username_fragment_1" 是有效的列名。

根据丹尼尔的要求提供更多详细信息:

query_sub = "(CASE WHEN ISNULL(%s) THEN 0 ELSE LENGTH(%s) END)"

query_string = query_sub % ((label_dict[frag],)*2)

results[frag] = DisplayNameSearchResult.objects.filter(**kwargs).extra(select={ 'proxylen':(query_string)},order_by=['proxylen']).values('agent_id', 'proxylen')

然而,当我 运行 单元测试时,我得到:

OperationalError: (1054, "Unknown column 'username_fragment_1__startswith' in 'field list'")

views.py 中的调用类似于:

MyClass.objects.filter(**kwargs)

感谢建议。

现在,今天早上它没有任何变化。作为 heisenbug 关闭。