Обновление временных меток связанных моделей - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть две следующие модели:

class Blog(TimeStampedModel):
    summary = models.TextField()
    status = models.CharField(max_length=255)


class Entry(TimeStampedModel):
    author = models.CharField(max_length=255)
    text = models.TextField()
    blog = models.ForeignKey(Blog, models.CASCADE, related_name='entries')

Обе модели являются подклассами общей метамодели, которая определяет временную метку для времени последнего обновления каждой модели:

class TimeStampedModel(models.Model):
    last_changed = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

Это прекрасно работает при сохранении каждой модели в отдельности. Однако, в моем случае использования, когда Entry обновляется, это также должно отражаться в обновлении last_changed отметки времени связанной Blog.

Есть ли какой-нибудь простой способ сказать Django, чтобы он также увеличивал временные метки связанных моделей?

1 Ответ

0 голосов
/ 25 апреля 2018

Я допускаю, что это хакерство, но вы можете переопределить save метод Entry модели:

def save(self, *args, **kwargs):
    self.blog.save()
    super().save(*args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...