Задать вопрос
taxicab33
@taxicab33
Python разработчик | Django

Как повесить сигнал post_save на родительский не абстрактный класс, чтобы отлавливать сигнал создания объектов дочерних моделей?

Родительский класс
class CommonContentDataModel(CommonDataAbstractModel,
                             CommonContentTypeDataModel,
                             CommonTagDataModel):

    class Meta:
        verbose_name = "Учебный материал"
        verbose_name_plural = "Учебный материал"

Дочерние классы
class WebResourceContent(CommonContentDataModel):
    url = models.URLField(verbose_name='Ссылка на веб-ресурс')

    class Meta:
        verbose_name = "Web-ресурс"
        verbose_name_plural = "Web-ресурсы"


class ArticleContent(CommonContentDataModel):
    content = RichTextField()

    class Meta:
        verbose_name = "Статья"
        verbose_name_plural = "Статьи"

Пробовал повесить так, не работает, т.к. дочерние классы перехватывают вызовы, а на них ничего не весит
@receiver(post_save, sender=CommonContentDataModel)
def make_notifications_about_ed_content_add(sender,  **kwargs):
    """Создает уведомление о добавлении учебного материала в систему"""

    created = kwargs.get('created', False)
    instance = kwargs.get('instance', False)
    if instance and created:
        admins = User.get_administrators()
        content = f"В базу знаний был добавлен новый учебный материал. " \
                  f"{instance.name}"
        notification = BaseNotification.objects.create(content=content)
        create_users_notifications(admins, notification)
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы