Django

2012-08-10 4 views
11

में अप्रयुक्त टेम्पलेट चर खोजने के लिए कैसे करें मैं django कोड पर साफ कर रहा हूं - मेरा IDE पाइथन कोड में आसानी से अप्रयुक्त चर आदि का पता लगा सकता है, लेकिन मुझे अप्रयुक्त टेम्पलेट चर खोजने के लिए कोई रास्ता नहीं मिला है - यह होगा दृश्य कोड को साफ़ करना बहुत आसान है अगर मैं पता लगा सकता हूं कि संदर्भ शब्दकोश में कौन से मान टेम्पलेट्स द्वारा उपयोग नहीं किए जाते हैं।Django

क्या इसके लिए कोई उपकरण है?

संपादित: मैं एक ऑफ़लाइन समाधान, एक स्थिर कोड विश्लेषण उपकरण या इस तरह के लिए देख रहा हूँ। जबकि नीचे दिए गए paranoid templates समाधान कुछ भी नहीं से बेहतर है, यह इष्टतम नहीं है क्योंकि टेम्पलेट्स और फ़्यूथरमोर में {% if ... %} शाखाएं हैं, सभी असुरक्षित चर खोजने के लिए सभी विचारों (सभी उपयोग मामलों में) की जांच करने की आवश्यकता होगी।

+0

आप के साथ चर देख सकते हैं [Django-डिबग-उपकरण पट्टी] (https://github.com/django-debug-toolbar/django-debug-toolbar/) यह हालांकि प्रयुक्त और अप्रयुक्त के बीच अंतर नहीं करता है। –

उत्तर

2

paranoid django templates समाधान का प्रयास करें:

class ParanoidContextProxy(object): 
    """ 
    This is a poor-man's proxy for a context instance. 

    Make sure template rendering stops immediately on a KeyError. 
    """ 
    def __init__(self, context): 
     self.context = context 
     self.seen_keys = set() 

    def __getitem__(self, key): 
     self.seen_keys.add(key) 
     try: 
      return self.context[key] 
     except KeyError: 
      raise ParanoidKeyError('ParanoidKeyError: %r' % (key,)) 

    def __getattr__(self, name): 
     return getattr(self.context, name) 
    def __setitem__(self, key, value): 
     self.context[key] = value 
    def __delitem__(self, key): 
     del self.context[key] 
+0

एर .. यह मूल रूप से ओपी चाहता था के विपरीत है, है ना? – supervacuo

+0

आह, क्योंकि आपने 'paranoid_context_manager' फ़ंक्शन शामिल नहीं किया है, जो वास्तव में 'saw_keys' का उपयोग करने के लिए आवश्यक हिस्सा है। – supervacuo

+0

मैंने आपको बक्षीस से सम्मानित किया, लेकिन मैं अभी भी एक अच्छे दृष्टिकोण की तलाश में हूं। मुझे लगता है मुझे खुद को टूल बनाना होगा ... – Kimvais