Login

Template context debugger with (I)Pdb

Author:
denis
Posted:
June 4, 2009
Language:
Python
Version:
1.0
Score:
7 (after 7 ratings)

This allows you to set up a breakpoint anywhere in your template code, by simply writing {% pdb_debug %}.

You can then access your context variables using context.get(..) at the pdb prompt. Optionally, install the ipdb package for colors, completion, and more (easy_install ipdb).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from django.template import Library, Node

register = Library()

try:
    import ipdb as pdb
except ImportError:   
    import pdb

class PdbNode(Node):
    def render(self, context):
        pdb.set_trace()
        return ''
@register.tag
def pdb_debug(parser, token):
    return PdbNode()

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 9 months, 3 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 4 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 5 months ago
  5. Help text hyperlinks by sa2812 1 year, 6 months ago

Comments

showell (on June 4, 2009):

This is an interesting idea. I am using pydev now, and I'm relatively new to that environment, and I am wondering if there's a similar way to hook into pydev's debugger.

#

jsandell (on June 5, 2009):

showell: I don't know if this has changed, as I haven't used Eclipse for a couple of years, but from what I can recall all you have to do is make sure the pydev directory is in your Django application's python path. i.e., put this:

import sys; sys.path.insert(0, '/path/to/pydev')

below the line:

from django.template import Library, Node

in this snippet.

Hope this helps.

(Note, I bet it'll work with WinPdb as well)

#

Please login first before commenting.