Как разделить 2 сигнала в одном обработчике в Django - PullRequest
0 голосов
/ 23 июня 2019

Вопрос в том, возможно ли в указанной ниже функции-обработчике различить ситуацию, когда она получает сигнал post_save или post_delete соответственно.Я имею в виду в целом, но не под неявными характеристиками, такими как, например, наличие или отсутствие «созданного».Я могу разделить 2 сигнала на 2 обработчика, но это было бы менее удобно ...

@receiver([post_save, post_delete], sender=Article)
def invalidate_by_Article(sender, instance,  **kwargs):
    show_by_heading_page_url = reverse('articles:show_by_heading',
                                       args=(instance.foreignkey_to_subheading_id,))
    article_content_page_url = reverse("articles:detail",
                                       args=(instance.foreignkey_to_subheading_id, instance.id))
    article_resurrection_url = reverse("articles:resurrection")
    main_page_url = reverse('articles:articles_main')
    urls = [show_by_heading_page_url, article_content_page_url]
    if not instance.show:  
        urls.extend([article_resurrection_url, main_page_url])
    if kwargs.get("created"):
        urls.append(main_page_url)
    list(find_urls(urls, purge=True))


...