@@ -367,6 +367,21 @@ collect_views(get_resolver(get_urlconf()))
367
367
print(dumps(views), end='', file=stdout)
368
368
" " Python source code to get views." )
369
369
370
+ (defvar djangonaut-get-middlewares-code "
371
+ from inspect import findsource, getsourcefile
372
+ from json import dumps
373
+
374
+ from django.utils.module_loading import import_string
375
+
376
+ middlewares = {}
377
+
378
+ for name in getattr(settings, 'MIDDLEWARE', None) or settings.MIDDLEWARE_CLASSES:
379
+ middleware = import_string(name)
380
+ middlewares[name] = [getsourcefile(middleware), findsource(middleware)[1]]
381
+
382
+ print(dumps(middlewares), end='', file=stdout)
383
+ " " Python source code to get middlewares." )
384
+
370
385
(defvar djangonaut-get-url-modules-code "
371
386
from json import dumps
372
387
from types import ModuleType
@@ -599,6 +614,8 @@ except:
599
614
600
615
(defvar djangonaut-views-history nil )
601
616
617
+ (defvar djangonaut-middlewares-history nil )
618
+
602
619
(defvar djangonaut-url-modules-history nil )
603
620
604
621
(defvar djangonaut-templates-history nil )
@@ -754,6 +771,10 @@ user input. HIST is a variable to store history of choices."
754
771
" Execute and parse python code to get views."
755
772
(djangonaut-read (djangonaut-call djangonaut-get-views-code)))
756
773
774
+ (defun djangonaut-get-middlewares ()
775
+ " Execute and parse python code to get middlewares."
776
+ (djangonaut-read (djangonaut-call djangonaut-get-middlewares-code)))
777
+
757
778
(defun djangonaut-get-url-modules ()
758
779
" Execute and parse python code to get url modules."
759
780
(djangonaut-read (djangonaut-call djangonaut-get-url-modules-code)))
@@ -934,6 +955,16 @@ user input. HIST is a variable to store history of choices."
934
955
(interactive )
935
956
(djangonaut-find-file-and-line #'find-file-other-window " View: " (djangonaut-get-views) 'djangonaut-views-history ))
936
957
958
+ (defun djangonaut-find-middleware ()
959
+ " Open definition of the Django middleware."
960
+ (interactive )
961
+ (djangonaut-find-file-and-line #'find-file " Middleware: " (djangonaut-get-middlewares) 'djangonaut-middlewares-history ))
962
+
963
+ (defun djangonaut-find-middleware-other-window ()
964
+ " Open definition of the Django middleware in the other window."
965
+ (interactive )
966
+ (djangonaut-find-file-and-line #'find-file-other-window " Middleware: " (djangonaut-get-middlewares) 'djangonaut-middlewares-history ))
967
+
937
968
(defun djangonaut-find-url-module ()
938
969
" Open definition of the Django url module."
939
970
(interactive )
@@ -1014,6 +1045,7 @@ user input. HIST is a variable to store history of choices."
1014
1045
(define-key map (kbd " s" ) 'djangonaut-find-drf-serializer )
1015
1046
(define-key map (kbd " p" ) 'djangonaut-find-drf-permission )
1016
1047
(define-key map (kbd " v" ) 'djangonaut-find-view )
1048
+ (define-key map (kbd " w" ) 'djangonaut-find-middleware )
1017
1049
(define-key map (kbd " u" ) 'djangonaut-find-url-module )
1018
1050
(define-key map (kbd " t" ) 'djangonaut-find-template )
1019
1051
(define-key map (kbd " g" ) 'djangonaut-find-template-tag )
@@ -1031,6 +1063,7 @@ user input. HIST is a variable to store history of choices."
1031
1063
(define-key map (kbd " 4 s" ) 'djangonaut-find-drf-serializer-other-window )
1032
1064
(define-key map (kbd " 4 p" ) 'djangonaut-find-drf-permission-other-window )
1033
1065
(define-key map (kbd " 4 v" ) 'djangonaut-find-view-other-window )
1066
+ (define-key map (kbd " 4 w" ) 'djangonaut-find-middleware-other-window )
1034
1067
(define-key map (kbd " 4 u" ) 'djangonaut-find-url-module-other-window )
1035
1068
(define-key map (kbd " 4 t" ) 'djangonaut-find-template-other-window )
1036
1069
(define-key map (kbd " 4 g" ) 'djangonaut-find-template-tag-other-window )
0 commit comments