Есть модель для новости на сайте BlogPost.
class BlogPost(Displayable, Ownable, RichText, AdminThumbMixin):
categories = models.ManyToManyField("BlogCategory",
verbose_name=_("Categories"),
blank=True, related_name="blogposts")
allow_comments = models.BooleanField(verbose_name=_("Allow comments"),
default=True)
post_qualification = models.BooleanField(verbose_name=_("Post qualification"),
default=False)
comments = CommentsField(verbose_name=_("Comments"))
rating = RatingField(verbose_name=_("Rating"))
featured_image = models.ImageField(verbose_name=_("Featured Image"), blank=True, null=True,
upload_to=upload_to("blog.BlogPost.featured_image", "blog"),
max_length=255)
video = EmbedVideoField(blank=True, null=True, verbose_name=u'Video')
related_posts = models.ManyToManyField("self",
verbose_name=_("Related posts"), blank=True)
admin_thumb_field = "featured_image"
class Meta:
verbose_name = _("Blog post")
verbose_name_plural = _("Blog posts")
ordering = ("-publish_date",)
хотел с помощью сигналов отправить сообщение в бот.
@receiver(signals.post_save, sender=BlogPost, dispatch_uid='mezzanine.blog.models')
def save_blog_post(sender, **kwargs):
print(f"Sender -- {sender}")
Пои сохранение модели обработчик срабатывает 5 раз
Sender -- <class 'mezzanine.blog.models.BlogPost'>
Sender -- <class 'mezzanine.blog.models.BlogPost'>
Sender -- <class 'mezzanine.blog.models.BlogPost'>
Sender -- <class 'mezzanine.blog.models.BlogPost'>
Sender -- <class 'mezzanine.blog.models.BlogPost'>
Я так понимаю это из-за наследования в модели, срабатывает метод save() в других моделях, тому как про бывал через метод save этой модели в бот отправлялось те же 5 сообщений.
Каким образом избежать этого?