I find it hard to criticize DRF, but one thing that could be added to the documentation is how to deal with M2M. Last time I tried a few different ways of doing it, and only two of them worked, then I had to figure out which way is better.
I don't think http://django-vanilla-views.org/ ever really caught on, but it does show that ccbv.co.uk shouldn't have to exist. The DRF class tree is small enough to keep in your head once you've spent some time with it.
I honestly only managed to get my mind wrapped around how class based views worked by studying Django Vanilla Views and Django Rest Framework… while I eventually learned and understood why the built in class based views are the way they are… in no small part thanks to https://ccbv.co.uk/ … but it was definitely more instructive to have a more simple class and mixin hierarchy that I could use, put breakpoints on, and fully get my head at… in order to get my mind around the very concept of class based views … after that it all made a lot more sense.
The class inheritance tree problem is solvable with a proper IDE/editor setup that allows you to drill-down into implementations. In a properly configured PyCharm for example you can Cmd+Click on any symbol and see its implementation (and do so recursively).
Also, https://www.cdrf.co/ helps with the class inheritance tree.