Kim*_*ais 11 django code-cleanup
我正在清理django代码 - 我的IDE可以轻松地检测Python代码中未使用的变量等,但我还没有找到一种方法来查找未使用的模板变量 - 如果可以的话,清理视图代码要容易得多找出模板不能访问上下文字典中的哪些值.
有这个工具吗?
编辑:我正在寻找离线解决方案,静态代码分析工具等.虽然下面提出的偏执模板解决方案总比没有好,但它并不是最优的,因为{% if ... %}模板中有多个分支,并且还需要测试所有视图(在所有用例中)以便找到所有未引用的变量.
尝试偏执的 django 模板解决方案:
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]
Run Code Online (Sandbox Code Playgroud)