Объект django 'dict' не имеет атрибута 'job_id'

У меня есть такой код:

def create_full_data_spb(contains_name: str, language="cs", system=False) -> tuple:
    full_data = []

    labels = []
    data_pass = []
    data_fail = []
    data_skip = []

    data_duration = []
    data_estimated_duration = []
    if not system:
        queryset = BuildRunMultiJob.objects.select_related("job_id") \
                        .filter(job_id__full_display_name__contains=contains_name) \
                        .filter(language=language) \
                        .values('job_id', 'job_id__pass_count', 'job_id__fail_count', 'job_id__skip_count') \
                        .order_by('-job_id__timestamp')[:10]

    for i in queryset:
        labels.append(str(i.job_id))
        data_pass.append(i.pass_count)
        data_fail.append(i.fail_count)
        data_skip.append(i.skip_count)

        # stop using mili
        mili = int(i.estimated_duration)
        temp = datetime.datetime.fromtimestamp(mili / 1000).strftime('%H:%M:%S')
        data_estimated_duration.append(temp)

        mili = int(i.duration)
        temp = datetime.datetime.fromtimestamp(mili / 1000).strftime('%H:%M:%S')
        data_duration.append(temp)

        full_data.append([i.job_id, i.pass_count, i.skip_count, i.fail_count, temp])

    return labels, data_pass, data_fail, data_skip, data_duration, data_estimated_duration, full_data

Хотя value() определена, я получаю ошибку 'dict' object has no attribute 'job_id' Я предполагаю, что ошибка будет также для pass_count, skip_count и fail_count

Что мне здесь делать?

        queryset = BuildRunMultiJob.objects.select_related("job_id") \
                        .filter(job_id__full_display_name__contains=contains_name) \
                        .filter(language=language) \
                        .values('job_id', 'job_id__pass_count', 'job_id__fail_count', 'job_id__skip_count') \
                        .order_by('-job_id__timestamp')

Ваш запрос не возвращает кверисет с экземплярами объектов, поэтому вы не можете ссылаться на поля с помощью ".". Это вызвано https://docs.djangoproject.com/en/4.0/ref/models/querysets/#values

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

Вернуться на верх