Django как скопировать подмножество значений объекта в новый объект?

Мне нужно создать новый объект Django DB, наследуя некоторые значения от существующих объектов.

Если бы я просто хотел создать новую копию объекта, я бы просто сделал следующее:

objB =OBJ.objects.get(pk=objA_id)
objB.pk = None
objB.save()

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

objB =OBJ.objects.get(pk=objA_id)
objB.pk = None
objB.key1 = value1
objB.key2 = value2
objB.key3 = None
objB.save()

Мой вопрос в том, есть ли лучший или "питонический" способ сделать это?

Это зависит от того, чего именно вы пытаетесь достичь. Может быть, уточните, что именно вы пытаетесь реализовать.

Однако я хочу сказать, что вы абсолютно точно НЕ хотите писать код, который обнуляет ваш PK или ID без предоставления замены или альтернативного первичного ключа для ссылки на него в базе данных. Объект без идентификатора просто не существует.

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