Conditional template parsing block

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from django.conf import settings
from django.template import Node, Library
from django.template.defaulttags import CommentNode, AutoEscapeControlNode

register = Library()

def BoringNode(Node):
	def __init__(self, nodelist):
		self.nodelist = nodelist

	def render(self, context):
		return self.nodelist.render(context)

@register.tag
def gisblock(parser, token):
	if not settings.BRIGHTWAY_GIS_SUPPORT:
		parser.skip_past('endgisblock')
		return CommentNode()

	nodelist = parser.parse(('endgisblock',))
	parser.delete_first_token()

	# HACK!!! why doesn't BoringNode work? I always get strange
	# errors ('NoneType' has no attribute 'source')
	return AutoEscapeControlNode(True, nodelist)
	#return BoringNode(nodelist)

More like this

  1. PostGIS "nearest" including range limiting by lkcl 4 years, 10 months ago
  2. create_template_postgis-ubuntu_lucid by clawlor 2 years, 8 months ago
  3. Find nearby objects by paulsmith 6 years, 1 month ago
  4. Strip trailing .html extensions from URLs so that existing bookmarks work for a legacy site ported to Django by daverowell 6 years ago
  5. Showell markup--DRY up your templates by showell 3 years, 5 months ago

Comments

(Forgotten your password?)