I still think there's a major issue with your code, The view code is
too coupled with the notification functionality. You shouldn't be using
a Mixin (at least in the context of a view). A view's major purpose is
to receive a request and return a response.
Also, the SendNotificationMixin class is too huge, if you use a
service like codeclimate it should flag it
as a "Code smell".
Shameless plug here: I created a django library that might be of help it uses django signals to decouple the notification functionality from your application. The various types of notifications can easily be written as "delivery channels" instead of mixins.
It also processes notifications asynchronously using Celery which IMO is better than django-channels because you can monitor tasks, retry them if they fail etc.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.