Я был на этом в течение двух дней, и теперь я надеюсь, что кто-то может указать мне в правильном направлении. Все, что я пытаюсь сделать, это дублировать запись в таблице/модели в другую модель с зеркальными полями, по существу создавая архивированную версию. Я хочу, чтобы это произошло, когда пользователь называет представление обновления.Дубликат/Запись архива в Django в другую модель
Что я до сих пор пробовал установить pk
на None
, а затем попытался найти способ переместить предыдущую версию в зеркальную/архивную модель. После нескольких часов исследований я отказался от этого пути. Затем я подумал, что ответ будет лежать с приемником pre_save
, но я не могу найти способ получить доступ к экземпляру модели, а затем save
, что и в архивной модели.
@receiver(pre_save, sender=InstrumentAnnual)
def archive_calc_instance(sender, instance, **kwargs):
stored_id = getattr(instance, 'id', None)
e = InstrumentAnnual.objects.filter(id = stored_id)
archive = InstrumentAnnualArchive(e.field_name, e.another_field_name...)
archive.save()
Насколько я могу сказать, что это должно работать, однако e
содержит только первое поле из модели.
Есть ли что-то, что можно сделать с помощью этого кода для достижения моей цели или есть ли способ «Django» решить эту проблему? То есть какая-то особенность официального архива?
Заранее спасибо.
Существует аналогичный вопрос: http://stackoverflow.com/questions/10817422/copy-model-object-from-a-model-to-another-in-django –
Спасибо Игорь, я видел этот пост вчера, но думал, что это не то, что я искал. Видимо, это было! Я разместил свой новый код ниже. – Karl