首页 > 解决方案 > 使用 MySQL 从 Django QuerySet 中获取不同的值

问题描述

有谁知道如何在 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

我想得到 model_code 考虑Filter mag_no = "My Variable" Ex:A656MAF00001

我尝试过这样的事情,但没有奏效。

Magazine.objects.filter(mag_no='A656MAF00001').get('model_code').distinct().order_by()

错误是:

“要解压的值太多”

标签: pythonmysqldjangodjango-queryset

解决方案


尝试:

Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().order_by('-id')

除非您使用 Postgres,否则您不能为 distinct 提供参数。

从文档:

仅在 PostgreSQL 上,您可以传递位置参数 (*fields) 以指定应应用 DISTINCT 的字段名称。

Django文档不同

编辑:根据评论获取最后一行。

Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().last().get('model_code')

推荐阅读