Python ValueError:太多值无法使用.extra django修饰符解包

Python ValueError:太多值无法使用.extra django修饰符解包,python,django,Python,Django,我试图使用.extra django queryset修饰符来查找与参数“user_avg_steps”最接近的5个匹配平均步长。 在我的django模型中,平均步骤存储在UserProfile表的“avg_步骤”列中 以下是我的代码片段: 用户平均步数=400.0 profile_list=UserProfile.objects.extraselect=OrderedDict['diff','%f'],select_params=absavg_steps-user_avg_steps.orde

我试图使用.extra django queryset修饰符来查找与参数“user_avg_steps”最接近的5个匹配平均步长。 在我的django模型中,平均步骤存储在UserProfile表的“avg_步骤”列中

以下是我的代码片段:

用户平均步数=400.0 profile_list=UserProfile.objects.extraselect=OrderedDict['diff','%f'],select_params=absavg_steps-user_avg_steps.order_by'diff'[:5] 我收到以下错误:ValueError:太多的值无法解包


请告诉我哪里可能出错。谢谢你,这个错误是从

OrderedDict(['diff','%f'])
您希望将哪个select子句附加到SQLselect部分

使现代化 你能试试下面的代码吗

profile_list = UserProfile.objects.extra(select={'diff': "abs(avg_steps-" + str(user_avt_steps) + ")"}, order_by = ['diff'])[:5]


你在这里得到了错误

OrderedDict(['diff','%f'])
例如:

>>> # regular unsorted dictionary
>>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

>>> # dictionary sorted by key
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))

按差异限制5从用户配置文件顺序中选择用户id、平均步骤、absavg步骤-用户平均步骤作为差异;这是我试图在Django中实现的mysql查询,我已经尝试过了。问题是我不能直接在子查询中使用user_avg_步骤,因为它不是表中的一列,而是一个局部变量。Django文档指定在这种情况下使用“select_params”,但我无法正确实现这一点。有什么想法吗?@user3761996我更新了,这个怎么样。我现在没有太多的时间,要编写使用select_参数的版本。
>>> # regular unsorted dictionary
>>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

>>> # dictionary sorted by key
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))