Обновление полей при обратном M2M-отношении
Наличие двух моделей:
class Publication(model.Models):
title = models.CharField(max_lenght=30)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Article(model.Models):
headline = models.CharField(max_length=100)
publications = models.ManyToManyField(Publication, related_name='articles')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
Я хочу, чтобы, когда я добавляю Publication к Article, поле updated_at в Publication также обновлялось:
a1 = Article.objects.create(name='Article 1')
p1 = Publication.objects.create(name='Publication 1')
a1.publications.add(p1)
print(a1.updated_at)
# Will print the timestamp when I added p1 to a1.
print(p1.updated_at)
# Will print the timestamp when I **created** p1. I want to print the time when it was added to a1.
Я знаю, что могу сделать это, используя сигналы, но мне интересно, есть ли более простой способ, так как я думаю, что сигналы добавляют дополнительную сложность в код.