Как сериализовать модель django и сохранить новые строки?

Я пытаюсь сериализовать модель django для хранения всех сделанных изменений. Мне нужно преобразовать некоторые значения в строку, чтобы избежать ошибок.

Вот что у меня есть на данный момент:

associated_objects = {"parts":{}}

for item_part in item_parts:
    part = Part.objects.get(id=item_part.part.id)
    part_name = part.part_name
    part = part.__dict__
    keys_values = part.items()
    part = {key: str(value) for key, value in keys_values}
    part = json.dumps(part, indent=4)
    associated_objects['parts'][f'{part_name}'] = part

record = Record.objects.create(associated_objects=associated_objects)
record.save()

Это сохраняет в модель с именем record, которая имеет TextField() с именем associated_objects. Мне нужно преобразовать значения в строку, чтобы избежать ошибок, вызванных объектами ImageField() в модели детали.

Вот что я получил в итоге:

{'parts': {'battery': '{\n  "id": "37",\n    "created_date": "2022-01-12 20:55:44.980636+00:00",\n    "created_by_id": "1",\n    "part_name": "battery",\n    "part_no": "BATTERY",\n    "alt_part_no": "None",\n    "description": "test_description.",\n    "qty": "99",\n    "reorder_qty": "5",\n    "cost": "45.0",\n    "side": "1",\n    "row": "1",\n    "column": "1",\n    "warranty": "None",\n    "vendor_id": "4",\n    "alt_vendor_id": "None",\n    "category_id": "10",\n    "img": "images/parts/battery.jpg",\n    "barcode": "barcodes/parts/BATTERY_barcode.jpeg",\n    "updated_date": "2022-01-13 18:42:30.818788+00:00",\n    "updated_by_id": "1",\n }'}}

К сожалению, он превращает словарь в строку, поэтому \n игнорируются.

Что мне нужно:

{'parts':
    {'battery':
        {
            "id": "37",
            "created_date": "2022-01-12 20:55:44.980636+00:00",
            "created_by_id": "1",
            "part_name": "battery",
            ...
        }      
    }
}
Вернуться на верх