Django .latest () значения - PullRequest
       22

Django .latest () значения

0 голосов
/ 24 сентября 2018

Я использую Django для своего проекта.У меня есть модель (таблица), в которой данные заполняются путем запуска процесса.У каждого процесса есть три шага, поэтому все семь шагов - это семь строк в таблице.Ниже приведен пример таблицы:

RunId   Process   ID

403     step1     1
403     step2     2
403     step3     3

404     step1     4
404     step2     5
404     step3     7

Каждый процесс имеет RunId, который уникален для каждого процесса.Во внешнем интерфейсе у меня есть таблица, которая показывает процесс, который выполняется в настоящее время, и текущий шаг, в котором этот процесс находится.

Чтобы получить текущий шаг, я использовал следующий код django:

RunIds = [403,404]
model.objects.filter(RunId__in = RunIds).latest()

, который дает последнюю строку каждого процесса (то есть шаг 3 в приведенной выше таблице).Но когда я захотел увидеть значения объекта, я запустил следующую команду:

model.objects.filter(RunId__in = RunIds).latest().values()

Django показал ошибку, говоря, что values ​​() не является атрибутом model, потому что .latest() недать набор запросов.Проблема в том, что я не могу преобразовать данные в этом объекте в словарь, чтобы я мог обновить словарь с другими значениями и словарями, используя dict.update().

1 Ответ

0 голосов
/ 24 сентября 2018

.latest() возвращает фактический объект, а не набор запросов.

Поэтому вы пытаетесь вызвать значения для объекта модели, которого у него нет.

Поменять порядок:

model.objects.filter(RunId__in = RunIds).values().latest()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...