Python ValueError:太多值无法使用.extra 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.order_by'diff'[:5] 我收到以下错误:ValueError:太多的值无法解包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
请告诉我哪里可能出错。谢谢你,这个错误是从
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]))