Как написать историю активности в Django, когда в модели есть более одного поля ManyToMany?

Мы используем библиотеку 'actstream', и она не обновляет фактические значения идентификаторов полей many2many в таблице истории. Всегда обновляется пустой список вместо списка идентификаторов.

class Parent():
    name = models.CharField(max_length=255)
    tags = TaggableManager(blank=True)

    def __str__(self):
        return self.name
        
        
class Table1():
    name = models.CharField(max_length=255, null=True)
    type = models.CharField(max_length=255, null=True)
    parent_id = models.ManyToManyField(ParentTable, blank=True, related_name='%(class)s_parent_id')
    tags = TaggableManager(blank=True) 

    def __str__(self):
        return self.name

"id" - это автоматически увеличивающееся значение в таблице Django. Как только мы вызываем метод save(), выполняется сигнал post_save для записи дополнительной информации в таблицу actstream.tags и parent_id обновляются как [] вместо того, чтобы пользователь отправлял значения в таблицу actstream_action.Мы используем аннотацию @receiver(post_save) и выполняем action.send() соответственно

@receiver(post_save)
def capture_models_post_save(sender, instance, created, **kwargs):
    userInfo = get_current_user()
    action.send(userInfo, verb='created',description='created',action_object=instance, modification=model_to_dict(instance))
Вернуться на верх