django-cbv-inspect 0.2.1

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangocbvinspect 0.2.1

django-cbv-inspect




















A tool to help inspect all class-based views within your Django project ๐Ÿ”Ž โœจ
Inspired by django-debug-toolbar โค๏ธ








๐Ÿ“ฆ Installation

Install with pip

pip install django-cbv-inspect


Add cbv_inspect to your list of INSTALLED_APPS in your Django settings module

INSTALLED_APPS = [
...
"cbv_inspect",
...
]


Add the middleware to your list of MIDDLEWARE classes in your Django settings module

MIDDLEWARE = [
...
"cbv_inspect.middleware.DjCbvInspectMiddleware",
...
]



Prerequisites
In your TEMPLATES settings within your Django settings module, make sure

the BACKEND setting is ""django.template.backends.django.DjangoTemplates""
the APP_DIRS setting is True






๐Ÿ›ž Usage
When all installation steps are done, any html response rendered by a class-based view should display the django-cbv-inspect toolbar on the page.
By default, all class-based views will be processed by the middleware. If you wish to exclude views, there are two options:
Exclude via mixin
from cbv_inspect.mixins import DjCbvExcludeMixin


class MyCoolView(DjCbvExcludeMixin, View):
pass

Exclude via decorator
from django.utils.decorators import method_decorator
from cbv_inspect.decorators import djcbv_exclude


@method_decorator(djcbv_exclude, name="dispatch")
class MyCoolView(View):
pass




๐Ÿงช Run locally
You can run the example project locally to test things out!
Clone the project and from the root of the repo, run the following Make command to setup the example project:
make run-example

To run unittests with coverage, run
make coverage




โšก๏ธ Features
The django-cbv-inspect toolbar has three main sections:

View information
CBV method call chain
MRO classes


View information
This section shows high level information about the class-based view, request, and url.

CBV method call chain
This is the main section that shows all methods that were excuted for the current class-based view:
It shows:

method name and signature
Classy Class-Based Views (ccbv.co.uk) links
method arguments and return value
all resolved super() calls defined in the method
module location


MRO classes
This section lists all MRO classes of the current class-based view class.
This can come in handy especially with the prior section when mapping the execution of a class-based view.



โ“ Why did I build this?
Django class-based views are hard to grasp especially when you're new to Django.
Fortunately for us, tools like django-debug-toolbar and ccbv.co.uk are super helpful in providing extra context for debugging.
My goal for this app was to take what goes on under the hood in a class-based view and display it in an easy to use interface, just like what django-debug-toolbar does.
Hopefully this can help debug your class-based views!
Happy coding! โœจ

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.