-
-
Python 3
pip install cbv-tracker
-
-
from cbv_tracker import cbv_tracker
-
from cbv_tracker import cbv_tracker @cbv_tracker() class AboutView(TemplateView): template_name = "about.html"
-
-
'mro'
<class 'bool'>
(Example 2) -
'exclude'
<class 'list'>
(Example 2) -
'explicit'
<class 'str'>
(Example 3)
-
-
-
views.py
from cbv_tracker import cbv_tracker @cbv_tracker() class SignupView(CreateView): template_name = 'registration/signup.html' form_class = CustomUserCreationForm success_url = reverse_lazy('login') def get(self, request, *args, **kwargs): if request.user.is_authenticated: return HttpResponseRedirect(reverse('home:home-page')) else: return super().get(request, *args, **kwargs)
-
terminal
✔ SignupView System check identified no issues (0 silenced). July 19, 2022 - 16:12:13 Django version 4.0.5, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. • SignupView → View ↘ ----------------------------- __init__(self, **kwargs) • SignupView → View ↘ ----------------------------- setup(self, request, *args, **kwargs) • SignupView → View ↘ ----------------------------- dispatch(self, request, *args, **kwargs) • SignupView ↘ ------------------------------------ get(self, request, *args, **kwargs) • SignupView → FormMixin ↘ ------------------------ get_context_data(self, **kwargs) • SignupView → FormMixin ↘ ------------------------ get_form(self, form_class=None) • SignupView → ModelFormMixin ↘ ------------------- get_form_class(self) • SignupView → ModelFormMixin ↘ ------------------- get_form_kwargs(self) • SignupView → FormMixin ↘ ------------------------ get_initial(self) • SignupView → FormMixin ↘ ------------------------ get_prefix(self) • SignupView → TemplateResponseMixin ↘ ------------ render_to_response(self, context, **response_kwargs) • SignupView → SingleObjectTemplateResponseMixin ↘ get_template_names(self) [19/Jul/2022 16:12:20] "GET /signup/ HTTP/1.1" 200 5778
-
-
Method Resolution Order
{'mro': True}
gets printed only once upon startup of the server.{'exclude': ['__init__', 'setup', 'dispatch', 'get']}
will ommit listed methods from beingprinted
.-
views.py
from cbv_tracker import cbv_tracker @cbv_tracker( settings={ 'mro': True, 'exclude': ['__init__', 'setup', 'dispatch', 'get'] } ) class SignupView(CreateView): template_name = 'registration/signup.html' form_class = CustomUserCreationForm success_url = reverse_lazy('login') def get(self, request, *args, **kwargs): if request.user.is_authenticated: return HttpResponseRedirect(reverse('home:home-page')) else: return super().get(request, *args, **kwargs)
-
terminal
✔ SignupView |___ 1, SignupView, |___ 2, CreateView, |___ 3, SingleObjectTemplateResponseMixin, |___ 4, TemplateResponseMixin, |___ 5, BaseCreateView, |___ 6, ModelFormMixin, |___ 7, FormMixin, |___ 8, SingleObjectMixin, |___ 9, ContextMixin, |___ 10, ProcessFormView, |___ 11, View System check identified no issues (0 silenced). July 19, 2022 - 16:18:13 Django version 4.0.5, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. • SignupView → FormMixin ↘ ------------------------ get_context_data(self, **kwargs) • SignupView → FormMixin ↘ ------------------------ get_form(self, form_class=None) • SignupView → ModelFormMixin ↘ ------------------- get_form_class(self) • SignupView → ModelFormMixin ↘ ------------------- get_form_kwargs(self) • SignupView → FormMixin ↘ ------------------------ get_initial(self) • SignupView → FormMixin ↘ ------------------------ get_prefix(self) • SignupView → TemplateResponseMixin ↘ ------------ render_to_response(self, context, **response_kwargs) • SignupView → SingleObjectTemplateResponseMixin ↘ get_template_names(self) [19/Jul/2022 16:18:14] "GET /signup/ HTTP/1.1" 200
-
-
Only the body of the first method in its MRO gets printed, in the following case
'exclude'
key is ignored andget
method isprinted
.-
views.py
from cbv_tracker import cbv_tracker @cbv_tracker( settings={ 'exclude': ['__init__', 'setup', 'dispatch' 'get'], 'explicit': 'get' } ) class SignupView(CreateView): template_name = 'registration/signup.html' form_class = CustomUserCreationForm success_url = reverse_lazy('login') def get(self, request, *args, **kwargs): if request.user.is_authenticated: return HttpResponseRedirect(reverse('home:home-page')) else: return super().get(request, *args, **kwargs)
-
terminal
✔ SignupView System check identified no issues (0 silenced). July 19, 2022 - 16:22:44 Django version 4.0.5, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. • SignupView ↘ def get(self, request, *args, **kwargs): if request.user.is_authenticated: return HttpResponseRedirect(reverse('leads:lead-list')) else: return super().get(request, *args, **kwargs) [19/Jul/2022 16:22:46] "GET /signup/ HTTP/1.1" 200 5778
-