code: def is_notifying(cls, user_or_email_, object_id=None, **filters):
          
          return cls._watches_belonging_to_user(user_or_email_,
                                                object_id=object_id,
                                                **filters).exists()
docs: Return whether the user/email is watching this event (either
          active or inactive watches), conditional on meeting the criteria in
          ``filters``.
  
          Count only watches that match the given filters exactly--not ones which
          match merely a superset of them. This lets callers distinguish between
          watches which overlap in scope. Equivalently, this lets callers check
          whether :meth:`notify()` has been called with these arguments.
  
          Implementations in subclasses may take different arguments--for
          example, to assume certain filters--though most will probably just use
          this. However, subclasses should clearly document what filters they
          supports and the meaning of each.
  
          Passing this an ``AnonymousUser`` always returns ``False``. This means
          you can always pass it ``request.user`` in a view and get a sensible
          response.