Значение переменной не соответствует ожидаемому после ее установки [закрыто]
Приложение 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
).
Какова может быть причина такого поведения? Каким может быть альтернативный способ достижения ожидаемого результата?