Получить отличное значение от Django QuerySet, используя MySQL - PullRequest
0 голосов
/ 16 октября 2019

Кто-нибудь знает, как получить отличное значение в Django QuerySet? Я использую базу данных MySQL и пока не могу найти решение.

Таблица:

         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()

Ошибка:

"Слишком много значений для распаковки"

Ответы [ 2 ]

1 голос
/ 16 октября 2019

try:

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

Вы не можете приводить аргументы к отличимым, если не используете Postgres.

Из документов:

Только на PostgreSQLВы можете передать позиционные аргументы (* fields), чтобы указать имена полей, к которым должен применяться DISTINCT.

Django документы различаются

edit : на основе комментария получить последнюю строку.

Magazine.objects.filter(mag_no='A656MAF00001').values('model_code').distinct().last().get('model_code')
0 голосов
/ 16 октября 2019

В качестве улучшения ответа Налина Добхала и в ответ на ваш комментарий к его / ее ответу сделайте следующее:

Magazine.objects.filter (mag_no = 'A656MAF00001'). Values ​​('model_code') .distinct (). order_by ('- id'). last (). get ('model_code')

Это происходит потому, что после вызова last () у вас остается слово python ичтобы получить значение dict, вам нужно использовать функцию get ('key_name'). Как указано здесь: https://realpython.com/python-dicts/#dgetltkeygt-ltdefaultgt

...