Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
from threading import local
_blah = local()
class StopThatShit(Exception):
pass
def patch():
from django.db.backends import util
from django import template
class StopQueryingCursorWrapper(util.CursorWrapper):
def __init__(self, cursor, connection):
if getattr(_blah, 'rendering', False):
raise StopThatShit('Stop executing queries in your templates!')
super(StopQueryingCursorWrapper, self).__init__(cursor, connection)
util.CursorWrapper = StopQueryingCursorWrapper
class StopQueryingTemplate(template.Template):
def render(self, context):
_blah.rendering = True
try:
super(StopQueryingTemplate, self).__init__(context)
finally:
_blah.rendering = False
template.Template = StopQueryingTemplate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment