Я не знаю ни одного способа запуска выбора по нескольким таблицам ... Так что, если вы не хотите использовать мое предложение ниже, вам просто нужно пройтись по всем обновляемым моделям.
Однако вы можете рассмотреть вариант использования модели UpdatedItems
, которая может выглядеть примерно так:
class ItemUpdate(m.Model):
when = m.DateTimeField(...)
instance = m.GenericForeignKey(...)
field = m.CharField(...)
old_value = m.CharField(...)
new_value = m.CharField(...)
Затем используйте сигнал post_save
для его заполнения:
form django.db.models.signals import post_save
def handle_post_save(sender, instance, *args, **kwargs):
ItemUpdate(instance=instance, ...).save()
Не знаю, как из головы понять, какие поля обновляются ... Но я уверен, что кто-то спрашивал об этом в Google.