Значение переменной не соответствует ожидаемому после ее установки [закрыто]

Приложение Django. Я генерирую файл отчета в формате excel. Различные клиенты могут добавлять свои собственные поля, и я пытаюсь добавить их также в отчет (например: weighing number = 75135, humidity = 54%), но поля в отчете появляются пустыми (weighing number = "", humidity = "").

Я устанавливаю field_name=field.name и затем пытаюсь получить значение из словаря с помощью .get(field_name), но вместо этого получаю None, а утверждения print() показывают мне, что field.name = "weighing number" (ожидаемое значение), а field_name = <MultilingualQuerySet [ <OrderRow: ORD017524: Item 1>, <OrderRow: ORD017490: Item 2> ]> (не ожидаемое значение).

field: ClientDefinedField
for field in order_custom_fields:
    exportable_fields.insert(
        5,
        {
            "name": field.name,
            "header": field.human_readable_name,
            "get_data": lambda row, field_name=str(field.name): row.order.extra_fields.get(
                "CLIENT_DEFINED_FIELDS", {}
            ).get(field_name),
        },
    )

При преобразовании его в список list(row.order.extra_fields.get("CLIENT_DEFINED_FIELDS", {}).values())[0] я получаю поля в отчете заполненными, но неправильно (например: weighing number = 75135, humidity = 75135).

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

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