[英]Get a distinct value from Django QuerySet using MySQL
有谁知道如何在 Django QuerySet 中获得不同的值? 我正在使用 MySQL db,但我还找不到解决方案。
表格是:
ID WORK_YMD LINE_NM MODEL_CODE MAG_NO PRODC_MAGT_NO
118002 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4035
118003 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4027
118004 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4039
118005 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4037
118006 20191015 PBA-21F BN94-14806W A656MAF00001 BR10BN9414806WA656MAE4038
考虑到Filter mag_no = "My Variable" Ex:A656MAF00001
我尝试过这样的事情,但没有奏效。
Magazine.objects.filter(mag_no='A656MAF00001').get('model_code').distinct().order_by()
错误是:
“要解压的值太多”
尝试:
Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().order_by('-id')
除非您使用 Postgres,否则不能将 arguments 赋予不同的值。
从文档:
仅在 PostgreSQL 上,您可以传递位置 arguments (*fields) 以指定应应用 DISTINCT 的字段名称。
Django 文档不同
编辑:根据评论获取最后一行。
Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().last().get('model_code')
作为对 Nalin Dobhal 回答的改进,并响应您对他/她回答的评论,请执行以下操作:
Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().order_by('-id').last().get('model_code')
这是因为,在调用 last() 之后,您会得到一个 python dict,并且要获取 dict 的值,您需要使用 get('key_name') function。 正如这里所指出的: https://realpython.com/python-dicts/#dgetltkeygt-ltdefaultgt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.